
	pushDummyFrame(&&exit_11337) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define box (lambda (x) ((lambda (v) (begin (vector-set! v 0 x) v)) (make-vector 1)))) **********") ;
	DEBUG_TRACE("start: def: (define box (lambda (x) ((lambda (v) (begin (vector-set! v 0 x) v)) (make-vector 1))))") ;
	DEBUG_TRACE("start: lambda: (lambda (x) ((lambda (v) (begin (vector-set! v 0 x) v)) (make-vector 1)))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_11342 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_11343;
	Closure_Code_11342:
	FUNCTION_ENTER("(lambda (x) ((lambda (v) (begin (vector-set! v 0 x) v)) (make-vector 1)))");
	RUNTIME_ASSERT(STACK_ARGC() == 1) ;
	DEBUG_TRACE("start: app tp: ((lambda (v) (begin (vector-set! v 0 x) v)) (make-vector 1))") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: application: (make-vector 1)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	machine.reg[RES] = makeSchemeInt(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: make-vector") ;
	machine.reg[RES] = getSymbol("make-vector") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: make-vector") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_11338) ;
	ret_from_app_11338:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (make-vector 1)") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: lambda: (lambda (v) (begin (vector-set! v 0 x) v))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_11340 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_11341;
	Closure_Code_11340:
	FUNCTION_ENTER("(lambda (v) (begin (vector-set! v 0 x) v))");
	RUNTIME_ASSERT(STACK_ARGC() == 1) ;
	DEBUG_TRACE("start: sequence: (begin (vector-set! v 0 x) v)") ;
	/* start new begin statement */
	DEBUG_TRACE("start: application: (vector-set! v 0 x)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var bound: x") ;
	machine.reg[RES] = getBoundVar (STACK_ENV(), 0, 0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var bound: x") ;
	push((void*)machine.reg[RES]) ;
	machine.reg[RES] = makeSchemeInt(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: v") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: v") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: vector-set!") ;
	machine.reg[RES] = getSymbol("vector-set!") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: vector-set!") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 3, machine.reg[1], &&ret_from_app_11339) ;
	ret_from_app_11339:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (vector-set! v 0 x)") ;
	/* start new begin statement */
	DEBUG_TRACE("start: var param: v") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: v") ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: sequence: (begin (vector-set! v 0 x) v)") ;
	FUNCTION_EXIT ("(lambda (v) (begin (vector-set! v 0 x) v))");
	Continue_11341:
	DEBUG_TRACE("end: lambda: (lambda (v) (begin (vector-set! v 0 x) v))") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 1 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +2 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 1, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: ((lambda (v) (begin (vector-set! v 0 x) v)) (make-vector 1))") ;
	FUNCTION_EXIT ("(lambda (x) ((lambda (v) (begin (vector-set! v 0 x) v)) (make-vector 1)))");
	Continue_11343:
	DEBUG_TRACE("end: lambda: (lambda (x) ((lambda (v) (begin (vector-set! v 0 x) v)) (make-vector 1)))") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("box") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define box (lambda (x) ((lambda (v) (begin (vector-set! v 0 x) v)) (make-vector 1))))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_11337:
	
	pushDummyFrame(&&exit_11344) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define null\? (lambda (x) (eq\? \'() x))) **********") ;
	DEBUG_TRACE("start: def: (define null\? (lambda (x) (eq\? \'() x)))") ;
	DEBUG_TRACE("start: lambda: (lambda (x) (eq\? \'() x))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_11345 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_11346;
	Closure_Code_11345:
	FUNCTION_ENTER("(lambda (x) (eq\? \'() x))");
	RUNTIME_ASSERT(STACK_ARGC() == 1) ;
	DEBUG_TRACE("start: app tp: (eq\? \'() x)") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: var param: x") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: x") ;
	push((void*)machine.reg[RES]) ;
	machine.reg[RES] = schemeNil ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: var free: eq\?") ;
	machine.reg[RES] = getSymbol("eq?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: eq\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 2 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	machine.stack[machine.fp+2] = machine.stack[machine.sp+1] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +3 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 2, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: (eq\? \'() x)") ;
	FUNCTION_EXIT ("(lambda (x) (eq\? \'() x))");
	Continue_11346:
	DEBUG_TRACE("end: lambda: (lambda (x) (eq\? \'() x))") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("null\?") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define null\? (lambda (x) (eq\? \'() x)))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_11344:
	
	pushDummyFrame(&&exit_11347) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define foldr (lambda (binop final s) ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s) (if (null\? s) final (binop (car s) ((vector-ref loop 0) (cdr s)))))) ((lambda () ((vector-ref loop 0) s))))) #f))) **********") ;
	DEBUG_TRACE("start: def: (define foldr (lambda (binop final s) ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s) (if (null\? s) final (binop (car s) ((vector-ref loop 0) (cdr s)))))) ((lambda () ((vector-ref loop 0) s))))) #f)))") ;
	DEBUG_TRACE("start: lambda: (lambda (binop final s) ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s) (if (null\? s) final (binop (car s) ((vector-ref loop 0) (cdr s)))))) ((lambda () ((vector-ref loop 0) s))))) #f))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_11364 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_11365;
	Closure_Code_11364:
	FUNCTION_ENTER("(lambda (binop final s) ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s) (if (null\? s) final (binop (car s) ((vector-ref loop 0) (cdr s)))))) ((lambda () ((vector-ref loop 0) s))))) #f))");
	RUNTIME_ASSERT(STACK_ARGC() == 3) ;
	DEBUG_TRACE("start: app tp: ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s) (if (null\? s) final (binop (car s) ((vector-ref loop 0) (cdr s)))))) ((lambda () ((vector-ref loop 0) s))))) #f)") ;
	/* Start of Pushing args */
	machine.reg[RES] = makeSchemeBool(FALSE);
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: lambda: (lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s) (if (null\? s) final (binop (car s) ((vector-ref loop 0) (cdr s)))))) ((lambda () ((vector-ref loop 0) s)))))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_11362 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_11363;
	Closure_Code_11362:
	FUNCTION_ENTER("(lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s) (if (null\? s) final (binop (car s) ((vector-ref loop 0) (cdr s)))))) ((lambda () ((vector-ref loop 0) s)))))");
	RUNTIME_ASSERT(STACK_ARGC() == 1) ;
	DEBUG_TRACE("start: sequence: (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s) (if (null\? s) final (binop (car s) ((vector-ref loop 0) (cdr s)))))) ((lambda () ((vector-ref loop 0) s))))") ;
	/* start new begin statement */
	DEBUG_TRACE("start: set: (set! loop (box loop))") ;
	DEBUG_TRACE("start: application: (box loop)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: loop") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: loop") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: box") ;
	machine.reg[RES] = getSymbol("box") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: box") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_11348) ;
	ret_from_app_11348:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (box loop)") ;
	*(STACK_ARGS()-0) = machine.reg[RES] ;
	machine.reg[RES] = makeSchemeVoid() ;
	DEBUG_TRACE("end: set: (set! loop (box loop))") ;
	/* start new begin statement */
	DEBUG_TRACE("start: application: (vector-set! loop 0 (lambda (s) (if (null\? s) final (binop (car s) ((vector-ref loop 0) (cdr s))))))") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: lambda: (lambda (s) (if (null\? s) final (binop (car s) ((vector-ref loop 0) (cdr s)))))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_11356 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_11357;
	Closure_Code_11356:
	FUNCTION_ENTER("(lambda (s) (if (null\? s) final (binop (car s) ((vector-ref loop 0) (cdr s)))))");
	RUNTIME_ASSERT(STACK_ARGC() == 1) ;
	DEBUG_TRACE("start: if: (if (null\? s) final (binop (car s) ((vector-ref loop 0) (cdr s))))") ;

	DEBUG_TRACE("start: application: (null\? s)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: s") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: null\?") ;
	machine.reg[RES] = getSymbol("null?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: null\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_11349) ;
	ret_from_app_11349:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (null\? s)") ;
	if (sobIsFalse(machine.reg[RES])) goto If_Else_11354;
	DEBUG_NOTICE("branch taken");
	DEBUG_TRACE("start: var bound: final") ;
	machine.reg[RES] = getBoundVar (STACK_ENV(), 1, 1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var bound: final") ;
	goto If_Done_11355;
	If_Else_11354:
	DEBUG_NOTICE("branch not taken");
	DEBUG_TRACE("start: app tp: (binop (car s) ((vector-ref loop 0) (cdr s)))") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: application: ((vector-ref loop 0) (cdr s))") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: application: (cdr s)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: s") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: cdr") ;
	machine.reg[RES] = getSymbol("cdr") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: cdr") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_11350) ;
	ret_from_app_11350:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (cdr s)") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: application: (vector-ref loop 0)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	machine.reg[RES] = makeSchemeInt(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var bound: loop") ;
	machine.reg[RES] = getBoundVar (STACK_ENV(), 0, 0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var bound: loop") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: vector-ref") ;
	machine.reg[RES] = getSymbol("vector-ref") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: vector-ref") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_11352) ;
	ret_from_app_11352:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (vector-ref loop 0)") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_11351) ;
	ret_from_app_11351:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: ((vector-ref loop 0) (cdr s))") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: application: (car s)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: s") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: car") ;
	machine.reg[RES] = getSymbol("car") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: car") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_11353) ;
	ret_from_app_11353:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (car s)") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: var bound: binop") ;
	machine.reg[RES] = getBoundVar (STACK_ENV(), 1, 0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var bound: binop") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 2 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	machine.stack[machine.fp+2] = machine.stack[machine.sp+1] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +3 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 2, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: (binop (car s) ((vector-ref loop 0) (cdr s)))") ;
	If_Done_11355:

	DEBUG_TRACE("end: if: (if (null\? s) final (binop (car s) ((vector-ref loop 0) (cdr s))))") ;
	FUNCTION_EXIT ("(lambda (s) (if (null\? s) final (binop (car s) ((vector-ref loop 0) (cdr s)))))");
	Continue_11357:
	DEBUG_TRACE("end: lambda: (lambda (s) (if (null\? s) final (binop (car s) ((vector-ref loop 0) (cdr s)))))") ;
	push((void*)machine.reg[RES]) ;
	machine.reg[RES] = makeSchemeInt(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: loop") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: loop") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: vector-set!") ;
	machine.reg[RES] = getSymbol("vector-set!") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: vector-set!") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 3, machine.reg[1], &&ret_from_app_11358) ;
	ret_from_app_11358:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (vector-set! loop 0 (lambda (s) (if (null\? s) final (binop (car s) ((vector-ref loop 0) (cdr s))))))") ;
	/* start new begin statement */
	DEBUG_TRACE("start: app tp: ((lambda () ((vector-ref loop 0) s)))") ;
	/* Start of Pushing args */
	/* End of Pushing args */
	DEBUG_TRACE("start: lambda: (lambda () ((vector-ref loop 0) s))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_11360 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_11361;
	Closure_Code_11360:
	FUNCTION_ENTER("(lambda () ((vector-ref loop 0) s))");
	RUNTIME_ASSERT(STACK_ARGC() == 0) ;
	DEBUG_TRACE("start: app tp: ((vector-ref loop 0) s)") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: var bound: s") ;
	machine.reg[RES] = getBoundVar (STACK_ENV(), 1, 2) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var bound: s") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: application: (vector-ref loop 0)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	machine.reg[RES] = makeSchemeInt(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var bound: loop") ;
	machine.reg[RES] = getBoundVar (STACK_ENV(), 0, 0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var bound: loop") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: vector-ref") ;
	machine.reg[RES] = getSymbol("vector-ref") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: vector-ref") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_11359) ;
	ret_from_app_11359:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (vector-ref loop 0)") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 1 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +2 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 1, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: ((vector-ref loop 0) s)") ;
	FUNCTION_EXIT ("(lambda () ((vector-ref loop 0) s))");
	Continue_11361:
	DEBUG_TRACE("end: lambda: (lambda () ((vector-ref loop 0) s))") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 0 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	/* End of overwriting old frame */
	machine.sp = machine.fp +1 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 0, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: ((lambda () ((vector-ref loop 0) s)))") ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: sequence: (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s) (if (null\? s) final (binop (car s) ((vector-ref loop 0) (cdr s)))))) ((lambda () ((vector-ref loop 0) s))))") ;
	FUNCTION_EXIT ("(lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s) (if (null\? s) final (binop (car s) ((vector-ref loop 0) (cdr s)))))) ((lambda () ((vector-ref loop 0) s)))))");
	Continue_11363:
	DEBUG_TRACE("end: lambda: (lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s) (if (null\? s) final (binop (car s) ((vector-ref loop 0) (cdr s)))))) ((lambda () ((vector-ref loop 0) s)))))") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 1 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +2 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 1, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s) (if (null\? s) final (binop (car s) ((vector-ref loop 0) (cdr s)))))) ((lambda () ((vector-ref loop 0) s))))) #f)") ;
	FUNCTION_EXIT ("(lambda (binop final s) ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s) (if (null\? s) final (binop (car s) ((vector-ref loop 0) (cdr s)))))) ((lambda () ((vector-ref loop 0) s))))) #f))");
	Continue_11365:
	DEBUG_TRACE("end: lambda: (lambda (binop final s) ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s) (if (null\? s) final (binop (car s) ((vector-ref loop 0) (cdr s)))))) ((lambda () ((vector-ref loop 0) s))))) #f))") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("foldr") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define foldr (lambda (binop final s) ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s) (if (null\? s) final (binop (car s) ((vector-ref loop 0) (cdr s)))))) ((lambda () ((vector-ref loop 0) s))))) #f)))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_11347:
	
	pushDummyFrame(&&exit_11366) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define add1 (lambda (n) (binary-add n 1))) **********") ;
	DEBUG_TRACE("start: def: (define add1 (lambda (n) (binary-add n 1)))") ;
	DEBUG_TRACE("start: lambda: (lambda (n) (binary-add n 1))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_11367 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_11368;
	Closure_Code_11367:
	FUNCTION_ENTER("(lambda (n) (binary-add n 1))");
	RUNTIME_ASSERT(STACK_ARGC() == 1) ;
	DEBUG_TRACE("start: app tp: (binary-add n 1)") ;
	/* Start of Pushing args */
	machine.reg[RES] = makeSchemeInt(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: n") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: n") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: var free: binary-add") ;
	machine.reg[RES] = getSymbol("binary-add") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: binary-add") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 2 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	machine.stack[machine.fp+2] = machine.stack[machine.sp+1] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +3 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 2, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: (binary-add n 1)") ;
	FUNCTION_EXIT ("(lambda (n) (binary-add n 1))");
	Continue_11368:
	DEBUG_TRACE("end: lambda: (lambda (n) (binary-add n 1))") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("add1") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define add1 (lambda (n) (binary-add n 1)))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_11366:
	
	pushDummyFrame(&&exit_11369) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define sub1 (lambda (n) (binary-sub n 1))) **********") ;
	DEBUG_TRACE("start: def: (define sub1 (lambda (n) (binary-sub n 1)))") ;
	DEBUG_TRACE("start: lambda: (lambda (n) (binary-sub n 1))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_11370 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_11371;
	Closure_Code_11370:
	FUNCTION_ENTER("(lambda (n) (binary-sub n 1))");
	RUNTIME_ASSERT(STACK_ARGC() == 1) ;
	DEBUG_TRACE("start: app tp: (binary-sub n 1)") ;
	/* Start of Pushing args */
	machine.reg[RES] = makeSchemeInt(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: n") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: n") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: var free: binary-sub") ;
	machine.reg[RES] = getSymbol("binary-sub") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: binary-sub") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 2 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	machine.stack[machine.fp+2] = machine.stack[machine.sp+1] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +3 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 2, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: (binary-sub n 1)") ;
	FUNCTION_EXIT ("(lambda (n) (binary-sub n 1))");
	Continue_11371:
	DEBUG_TRACE("end: lambda: (lambda (n) (binary-sub n 1))") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("sub1") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define sub1 (lambda (n) (binary-sub n 1)))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_11369:
	
	pushDummyFrame(&&exit_11372) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define order (lambda (<) ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (a s) (or (null\? s) (if (< a (car s)) ((vector-ref loop 0) (car s) (cdr s)) #f)))) ((lambda () (lambda (a . s) ((vector-ref loop 0) a s)))))) #f))) **********") ;
	DEBUG_TRACE("start: def: (define order (lambda (<) ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (a s) (or (null\? s) (if (< a (car s)) ((vector-ref loop 0) (car s) (cdr s)) #f)))) ((lambda () (lambda (a . s) ((vector-ref loop 0) a s)))))) #f)))") ;
	DEBUG_TRACE("start: lambda: (lambda (<) ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (a s) (or (null\? s) (if (< a (car s)) ((vector-ref loop 0) (car s) (cdr s)) #f)))) ((lambda () (lambda (a . s) ((vector-ref loop 0) a s)))))) #f))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_11396 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_11397;
	Closure_Code_11396:
	FUNCTION_ENTER("(lambda (<) ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (a s) (or (null\? s) (if (< a (car s)) ((vector-ref loop 0) (car s) (cdr s)) #f)))) ((lambda () (lambda (a . s) ((vector-ref loop 0) a s)))))) #f))");
	RUNTIME_ASSERT(STACK_ARGC() == 1) ;
	DEBUG_TRACE("start: app tp: ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (a s) (or (null\? s) (if (< a (car s)) ((vector-ref loop 0) (car s) (cdr s)) #f)))) ((lambda () (lambda (a . s) ((vector-ref loop 0) a s)))))) #f)") ;
	/* Start of Pushing args */
	machine.reg[RES] = makeSchemeBool(FALSE);
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: lambda: (lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (a s) (or (null\? s) (if (< a (car s)) ((vector-ref loop 0) (car s) (cdr s)) #f)))) ((lambda () (lambda (a . s) ((vector-ref loop 0) a s))))))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_11394 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_11395;
	Closure_Code_11394:
	FUNCTION_ENTER("(lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (a s) (or (null\? s) (if (< a (car s)) ((vector-ref loop 0) (car s) (cdr s)) #f)))) ((lambda () (lambda (a . s) ((vector-ref loop 0) a s))))))");
	RUNTIME_ASSERT(STACK_ARGC() == 1) ;
	DEBUG_TRACE("start: sequence: (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (a s) (or (null\? s) (if (< a (car s)) ((vector-ref loop 0) (car s) (cdr s)) #f)))) ((lambda () (lambda (a . s) ((vector-ref loop 0) a s)))))") ;
	/* start new begin statement */
	DEBUG_TRACE("start: set: (set! loop (box loop))") ;
	DEBUG_TRACE("start: application: (box loop)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: loop") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: loop") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: box") ;
	machine.reg[RES] = getSymbol("box") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: box") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_11373) ;
	ret_from_app_11373:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (box loop)") ;
	*(STACK_ARGS()-0) = machine.reg[RES] ;
	machine.reg[RES] = makeSchemeVoid() ;
	DEBUG_TRACE("end: set: (set! loop (box loop))") ;
	/* start new begin statement */
	DEBUG_TRACE("start: application: (vector-set! loop 0 (lambda (a s) (or (null\? s) (if (< a (car s)) ((vector-ref loop 0) (car s) (cdr s)) #f))))") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: lambda: (lambda (a s) (or (null\? s) (if (< a (car s)) ((vector-ref loop 0) (car s) (cdr s)) #f)))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_11383 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_11384;
	Closure_Code_11383:
	FUNCTION_ENTER("(lambda (a s) (or (null\? s) (if (< a (car s)) ((vector-ref loop 0) (car s) (cdr s)) #f)))");
	RUNTIME_ASSERT(STACK_ARGC() == 2) ;
	DEBUG_TRACE("start: or: (or (null\? s) (if (< a (car s)) ((vector-ref loop 0) (car s) (cdr s)) #f))") ;
	DEBUG_TRACE("start: application: (null\? s)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: s") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: null\?") ;
	machine.reg[RES] = getSymbol("null?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: null\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_11375) ;
	ret_from_app_11375:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (null\? s)") ;
	if (sobIsntFalse(machine.reg[RES])) goto or_end_11374 ; /* end the 'or' if true */
	DEBUG_TRACE("start: if: (if (< a (car s)) ((vector-ref loop 0) (car s) (cdr s)) #f)") ;

	DEBUG_TRACE("start: application: (< a (car s))") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: application: (car s)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: s") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: car") ;
	machine.reg[RES] = getSymbol("car") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: car") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_11376) ;
	ret_from_app_11376:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (car s)") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: a") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: a") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var bound: <") ;
	machine.reg[RES] = getBoundVar (STACK_ENV(), 1, 0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var bound: <") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_11377) ;
	ret_from_app_11377:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (< a (car s))") ;
	if (sobIsFalse(machine.reg[RES])) goto If_Else_11381;
	DEBUG_NOTICE("branch taken");
	DEBUG_TRACE("start: app tp: ((vector-ref loop 0) (car s) (cdr s))") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: application: (cdr s)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: s") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: cdr") ;
	machine.reg[RES] = getSymbol("cdr") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: cdr") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_11378) ;
	ret_from_app_11378:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (cdr s)") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: application: (car s)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: s") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: car") ;
	machine.reg[RES] = getSymbol("car") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: car") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_11379) ;
	ret_from_app_11379:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (car s)") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: application: (vector-ref loop 0)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	machine.reg[RES] = makeSchemeInt(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var bound: loop") ;
	machine.reg[RES] = getBoundVar (STACK_ENV(), 0, 0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var bound: loop") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: vector-ref") ;
	machine.reg[RES] = getSymbol("vector-ref") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: vector-ref") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_11380) ;
	ret_from_app_11380:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (vector-ref loop 0)") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 2 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	machine.stack[machine.fp+2] = machine.stack[machine.sp+1] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +3 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 2, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: ((vector-ref loop 0) (car s) (cdr s))") ;
	goto If_Done_11382;
	If_Else_11381:
	DEBUG_NOTICE("branch not taken");
	machine.reg[RES] = makeSchemeBool(FALSE);
	If_Done_11382:

	DEBUG_TRACE("end: if: (if (< a (car s)) ((vector-ref loop 0) (car s) (cdr s)) #f)") ;
	or_end_11374:
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: or: (or (null\? s) (if (< a (car s)) ((vector-ref loop 0) (car s) (cdr s)) #f))") ;
	FUNCTION_EXIT ("(lambda (a s) (or (null\? s) (if (< a (car s)) ((vector-ref loop 0) (car s) (cdr s)) #f)))");
	Continue_11384:
	DEBUG_TRACE("end: lambda: (lambda (a s) (or (null\? s) (if (< a (car s)) ((vector-ref loop 0) (car s) (cdr s)) #f)))") ;
	push((void*)machine.reg[RES]) ;
	machine.reg[RES] = makeSchemeInt(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: loop") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: loop") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: vector-set!") ;
	machine.reg[RES] = getSymbol("vector-set!") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: vector-set!") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 3, machine.reg[1], &&ret_from_app_11385) ;
	ret_from_app_11385:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (vector-set! loop 0 (lambda (a s) (or (null\? s) (if (< a (car s)) ((vector-ref loop 0) (car s) (cdr s)) #f))))") ;
	/* start new begin statement */
	DEBUG_TRACE("start: app tp: ((lambda () (lambda (a . s) ((vector-ref loop 0) a s))))") ;
	/* Start of Pushing args */
	/* End of Pushing args */
	DEBUG_TRACE("start: lambda: (lambda () (lambda (a . s) ((vector-ref loop 0) a s)))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_11392 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_11393;
	Closure_Code_11392:
	FUNCTION_ENTER("(lambda () (lambda (a . s) ((vector-ref loop 0) a s)))");
	RUNTIME_ASSERT(STACK_ARGC() == 0) ;
	DEBUG_TRACE("start: lambda opt: (lambda (a . s) ((vector-ref loop 0) a s))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[0]) ;
	machine.reg[1] = makeLocalEnv(STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[0] = extendEnv((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure(machine.reg[0], &&Closure_Code_11386) ;
	goto Continue_11387 ;
	Closure_Code_11386:
	FUNCTION_ENTER("(lambda (a . s) ((vector-ref loop 0) a s))") ;
	RUNTIME_ASSERT(STACK_ARGC() >= 1) ;
	push((void*)machine.reg[0]) ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	push((void*)machine.reg[3]) ;
	/* backups since shifting the frame changes argc */
	machine.reg[1] = (void*)STACK_ARGC() ;
	machine.reg[1] = (void*)((Amount)machine.reg[1] - 1) ; /* amount of optional args */
	machine.reg[3] = (void*)(STACK_FRAME_SIZE()+4) ;
	machine.reg[0] = stackToSchemeList(STACK_ARGS()-1, (Amount)machine.reg[1]) ;
	/* shift_frame_up */
	machine.reg[2] = (void*)(machine.sp) ; /* loop counter */
	shift_frame_up_loop_start_11389:
	if (!((Amount)machine.reg[2] >= machine.sp-(Amount)machine.reg[3]+1)) goto shift_frame_up_loop_end_11390 ;
	machine.stack[(Amount)machine.reg[2]] = machine.stack[(Amount)machine.reg[2]-1] ;
	machine.reg[2] = (void*)((Amount)machine.reg[2] - 1) ; /* step */
	goto shift_frame_up_loop_start_11389 ;
	shift_frame_up_loop_end_11390:
	machine.fp += 1 ;
	goto after_frame_shift_11388 ;
	after_frame_shift_11388:
	machine.sp = machine.fp+4 ;
	machine.stack[machine.fp-4] = machine.stack[machine.fp-4]+1 ; /* fix ARGC, basically, STACK_ARGC() -= ... */
	*(STACK_ARGS()-1) = machine.reg[0] ; /* fix last argument */
	machine.reg[3] = pop() ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("start: app tp: ((vector-ref loop 0) a s)") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: var param: s") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: a") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: a") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: application: (vector-ref loop 0)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	machine.reg[RES] = makeSchemeInt(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var bound: loop") ;
	machine.reg[RES] = getBoundVar (STACK_ENV(), 1, 0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var bound: loop") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: vector-ref") ;
	machine.reg[RES] = getSymbol("vector-ref") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: vector-ref") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_11391) ;
	ret_from_app_11391:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (vector-ref loop 0)") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 2 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	machine.stack[machine.fp+2] = machine.stack[machine.sp+1] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +3 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 2, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: ((vector-ref loop 0) a s)") ;
	FUNCTION_EXIT("(lambda (a . s) ((vector-ref loop 0) a s))") ;
	Continue_11387:
	machine.reg[0] = pop() ;
	machine.reg[1] = pop() ;
	DEBUG_TRACE("end: lambda opt: (lambda (a . s) ((vector-ref loop 0) a s))") ;
	FUNCTION_EXIT ("(lambda () (lambda (a . s) ((vector-ref loop 0) a s)))");
	Continue_11393:
	DEBUG_TRACE("end: lambda: (lambda () (lambda (a . s) ((vector-ref loop 0) a s)))") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 0 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	/* End of overwriting old frame */
	machine.sp = machine.fp +1 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 0, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: ((lambda () (lambda (a . s) ((vector-ref loop 0) a s))))") ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: sequence: (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (a s) (or (null\? s) (if (< a (car s)) ((vector-ref loop 0) (car s) (cdr s)) #f)))) ((lambda () (lambda (a . s) ((vector-ref loop 0) a s)))))") ;
	FUNCTION_EXIT ("(lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (a s) (or (null\? s) (if (< a (car s)) ((vector-ref loop 0) (car s) (cdr s)) #f)))) ((lambda () (lambda (a . s) ((vector-ref loop 0) a s))))))");
	Continue_11395:
	DEBUG_TRACE("end: lambda: (lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (a s) (or (null\? s) (if (< a (car s)) ((vector-ref loop 0) (car s) (cdr s)) #f)))) ((lambda () (lambda (a . s) ((vector-ref loop 0) a s))))))") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 1 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +2 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 1, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (a s) (or (null\? s) (if (< a (car s)) ((vector-ref loop 0) (car s) (cdr s)) #f)))) ((lambda () (lambda (a . s) ((vector-ref loop 0) a s)))))) #f)") ;
	FUNCTION_EXIT ("(lambda (<) ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (a s) (or (null\? s) (if (< a (car s)) ((vector-ref loop 0) (car s) (cdr s)) #f)))) ((lambda () (lambda (a . s) ((vector-ref loop 0) a s)))))) #f))");
	Continue_11397:
	DEBUG_TRACE("end: lambda: (lambda (<) ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (a s) (or (null\? s) (if (< a (car s)) ((vector-ref loop 0) (car s) (cdr s)) #f)))) ((lambda () (lambda (a . s) ((vector-ref loop 0) a s)))))) #f))") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("order") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define order (lambda (<) ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (a s) (or (null\? s) (if (< a (car s)) ((vector-ref loop 0) (car s) (cdr s)) #f)))) ((lambda () (lambda (a . s) ((vector-ref loop 0) a s)))))) #f)))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_11372:
	
	pushDummyFrame(&&exit_11398) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define < (order binary<\?)) **********") ;
	DEBUG_TRACE("start: def: (define < (order binary<\?))") ;
	DEBUG_TRACE("start: application: (order binary<\?)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var free: binary<\?") ;
	machine.reg[RES] = getSymbol("binary<?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: binary<\?") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: order") ;
	machine.reg[RES] = getSymbol("order") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: order") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_11399) ;
	ret_from_app_11399:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (order binary<\?)") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("<") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define < (order binary<\?))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_11398:
	
	pushDummyFrame(&&exit_11400) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define <= ((lambda (binary<=\?) (order binary<=\?)) (lambda (a b) (or (binary<\? a b) (binary=\? a b))))) **********") ;
	DEBUG_TRACE("start: def: (define <= ((lambda (binary<=\?) (order binary<=\?)) (lambda (a b) (or (binary<\? a b) (binary=\? a b)))))") ;
	DEBUG_TRACE("start: application: ((lambda (binary<=\?) (order binary<=\?)) (lambda (a b) (or (binary<\? a b) (binary=\? a b))))") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: lambda: (lambda (a b) (or (binary<\? a b) (binary=\? a b)))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_11403 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_11404;
	Closure_Code_11403:
	FUNCTION_ENTER("(lambda (a b) (or (binary<\? a b) (binary=\? a b)))");
	RUNTIME_ASSERT(STACK_ARGC() == 2) ;
	DEBUG_TRACE("start: or: (or (binary<\? a b) (binary=\? a b))") ;
	DEBUG_TRACE("start: application: (binary<\? a b)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: b") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: b") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: a") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: a") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: binary<\?") ;
	machine.reg[RES] = getSymbol("binary<?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: binary<\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_11402) ;
	ret_from_app_11402:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (binary<\? a b)") ;
	if (sobIsntFalse(machine.reg[RES])) goto or_end_11401 ; /* end the 'or' if true */
	DEBUG_TRACE("start: app tp: (binary=\? a b)") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: var param: b") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: b") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: a") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: a") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: var free: binary=\?") ;
	machine.reg[RES] = getSymbol("binary=?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: binary=\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 2 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	machine.stack[machine.fp+2] = machine.stack[machine.sp+1] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +3 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 2, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: (binary=\? a b)") ;
	or_end_11401:
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: or: (or (binary<\? a b) (binary=\? a b))") ;
	FUNCTION_EXIT ("(lambda (a b) (or (binary<\? a b) (binary=\? a b)))");
	Continue_11404:
	DEBUG_TRACE("end: lambda: (lambda (a b) (or (binary<\? a b) (binary=\? a b)))") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: lambda: (lambda (binary<=\?) (order binary<=\?))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_11406 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_11407;
	Closure_Code_11406:
	FUNCTION_ENTER("(lambda (binary<=\?) (order binary<=\?))");
	RUNTIME_ASSERT(STACK_ARGC() == 1) ;
	DEBUG_TRACE("start: app tp: (order binary<=\?)") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: var param: binary<=\?") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: binary<=\?") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: var free: order") ;
	machine.reg[RES] = getSymbol("order") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: order") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 1 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +2 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 1, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: (order binary<=\?)") ;
	FUNCTION_EXIT ("(lambda (binary<=\?) (order binary<=\?))");
	Continue_11407:
	DEBUG_TRACE("end: lambda: (lambda (binary<=\?) (order binary<=\?))") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_11405) ;
	ret_from_app_11405:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: ((lambda (binary<=\?) (order binary<=\?)) (lambda (a b) (or (binary<\? a b) (binary=\? a b))))") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("<=") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define <= ((lambda (binary<=\?) (order binary<=\?)) (lambda (a b) (or (binary<\? a b) (binary=\? a b)))))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_11400:
	
	pushDummyFrame(&&exit_11408) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define binary>\? (lambda (a b) (binary<\? b a))) **********") ;
	DEBUG_TRACE("start: def: (define binary>\? (lambda (a b) (binary<\? b a)))") ;
	DEBUG_TRACE("start: lambda: (lambda (a b) (binary<\? b a))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_11409 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_11410;
	Closure_Code_11409:
	FUNCTION_ENTER("(lambda (a b) (binary<\? b a))");
	RUNTIME_ASSERT(STACK_ARGC() == 2) ;
	DEBUG_TRACE("start: app tp: (binary<\? b a)") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: var param: a") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: a") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: b") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: b") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: var free: binary<\?") ;
	machine.reg[RES] = getSymbol("binary<?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: binary<\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 2 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	machine.stack[machine.fp+2] = machine.stack[machine.sp+1] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +3 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 2, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: (binary<\? b a)") ;
	FUNCTION_EXIT ("(lambda (a b) (binary<\? b a))");
	Continue_11410:
	DEBUG_TRACE("end: lambda: (lambda (a b) (binary<\? b a))") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("binary>\?") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define binary>\? (lambda (a b) (binary<\? b a)))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_11408:
	
	pushDummyFrame(&&exit_11411) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define > (order binary>\?)) **********") ;
	DEBUG_TRACE("start: def: (define > (order binary>\?))") ;
	DEBUG_TRACE("start: application: (order binary>\?)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var free: binary>\?") ;
	machine.reg[RES] = getSymbol("binary>?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: binary>\?") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: order") ;
	machine.reg[RES] = getSymbol("order") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: order") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_11412) ;
	ret_from_app_11412:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (order binary>\?)") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol(">") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define > (order binary>\?))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_11411:
	
	pushDummyFrame(&&exit_11413) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define >= ((lambda (binary>=\?) (order binary>=\?)) (lambda (a b) (or (binary=\? a b) (binary>\? a b))))) **********") ;
	DEBUG_TRACE("start: def: (define >= ((lambda (binary>=\?) (order binary>=\?)) (lambda (a b) (or (binary=\? a b) (binary>\? a b)))))") ;
	DEBUG_TRACE("start: application: ((lambda (binary>=\?) (order binary>=\?)) (lambda (a b) (or (binary=\? a b) (binary>\? a b))))") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: lambda: (lambda (a b) (or (binary=\? a b) (binary>\? a b)))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_11416 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_11417;
	Closure_Code_11416:
	FUNCTION_ENTER("(lambda (a b) (or (binary=\? a b) (binary>\? a b)))");
	RUNTIME_ASSERT(STACK_ARGC() == 2) ;
	DEBUG_TRACE("start: or: (or (binary=\? a b) (binary>\? a b))") ;
	DEBUG_TRACE("start: application: (binary=\? a b)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: b") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: b") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: a") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: a") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: binary=\?") ;
	machine.reg[RES] = getSymbol("binary=?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: binary=\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_11415) ;
	ret_from_app_11415:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (binary=\? a b)") ;
	if (sobIsntFalse(machine.reg[RES])) goto or_end_11414 ; /* end the 'or' if true */
	DEBUG_TRACE("start: app tp: (binary>\? a b)") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: var param: b") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: b") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: a") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: a") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: var free: binary>\?") ;
	machine.reg[RES] = getSymbol("binary>?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: binary>\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 2 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	machine.stack[machine.fp+2] = machine.stack[machine.sp+1] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +3 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 2, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: (binary>\? a b)") ;
	or_end_11414:
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: or: (or (binary=\? a b) (binary>\? a b))") ;
	FUNCTION_EXIT ("(lambda (a b) (or (binary=\? a b) (binary>\? a b)))");
	Continue_11417:
	DEBUG_TRACE("end: lambda: (lambda (a b) (or (binary=\? a b) (binary>\? a b)))") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: lambda: (lambda (binary>=\?) (order binary>=\?))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_11419 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_11420;
	Closure_Code_11419:
	FUNCTION_ENTER("(lambda (binary>=\?) (order binary>=\?))");
	RUNTIME_ASSERT(STACK_ARGC() == 1) ;
	DEBUG_TRACE("start: app tp: (order binary>=\?)") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: var param: binary>=\?") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: binary>=\?") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: var free: order") ;
	machine.reg[RES] = getSymbol("order") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: order") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 1 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +2 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 1, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: (order binary>=\?)") ;
	FUNCTION_EXIT ("(lambda (binary>=\?) (order binary>=\?))");
	Continue_11420:
	DEBUG_TRACE("end: lambda: (lambda (binary>=\?) (order binary>=\?))") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_11418) ;
	ret_from_app_11418:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: ((lambda (binary>=\?) (order binary>=\?)) (lambda (a b) (or (binary=\? a b) (binary>\? a b))))") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol(">=") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define >= ((lambda (binary>=\?) (order binary>=\?)) (lambda (a b) (or (binary=\? a b) (binary>\? a b)))))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_11413:
	
	pushDummyFrame(&&exit_11421) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define = (order binary=\?)) **********") ;
	DEBUG_TRACE("start: def: (define = (order binary=\?))") ;
	DEBUG_TRACE("start: application: (order binary=\?)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var free: binary=\?") ;
	machine.reg[RES] = getSymbol("binary=?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: binary=\?") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: order") ;
	machine.reg[RES] = getSymbol("order") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: order") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_11422) ;
	ret_from_app_11422:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (order binary=\?)") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("=") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define = (order binary=\?))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_11421:
	
	pushDummyFrame(&&exit_11423) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define <> ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (a s) (or (null\? s) (if (andmap (lambda (b) (not (= a b))) s) ((vector-ref loop 0) (car s) (cdr s)) #f)))) ((lambda () (lambda s ((vector-ref loop 0) (car s) (cdr s))))))) #f)) **********") ;
	DEBUG_TRACE("start: def: (define <> ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (a s) (or (null\? s) (if (andmap (lambda (b) (not (= a b))) s) ((vector-ref loop 0) (car s) (cdr s)) #f)))) ((lambda () (lambda s ((vector-ref loop 0) (car s) (cdr s))))))) #f))") ;
	DEBUG_TRACE("start: application: ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (a s) (or (null\? s) (if (andmap (lambda (b) (not (= a b))) s) ((vector-ref loop 0) (car s) (cdr s)) #f)))) ((lambda () (lambda s ((vector-ref loop 0) (car s) (cdr s))))))) #f)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	machine.reg[RES] = makeSchemeBool(FALSE);
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: lambda: (lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (a s) (or (null\? s) (if (andmap (lambda (b) (not (= a b))) s) ((vector-ref loop 0) (car s) (cdr s)) #f)))) ((lambda () (lambda s ((vector-ref loop 0) (car s) (cdr s)))))))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_11450 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_11451;
	Closure_Code_11450:
	FUNCTION_ENTER("(lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (a s) (or (null\? s) (if (andmap (lambda (b) (not (= a b))) s) ((vector-ref loop 0) (car s) (cdr s)) #f)))) ((lambda () (lambda s ((vector-ref loop 0) (car s) (cdr s)))))))");
	RUNTIME_ASSERT(STACK_ARGC() == 1) ;
	DEBUG_TRACE("start: sequence: (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (a s) (or (null\? s) (if (andmap (lambda (b) (not (= a b))) s) ((vector-ref loop 0) (car s) (cdr s)) #f)))) ((lambda () (lambda s ((vector-ref loop 0) (car s) (cdr s))))))") ;
	/* start new begin statement */
	DEBUG_TRACE("start: set: (set! loop (box loop))") ;
	DEBUG_TRACE("start: application: (box loop)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: loop") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: loop") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: box") ;
	machine.reg[RES] = getSymbol("box") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: box") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_11425) ;
	ret_from_app_11425:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (box loop)") ;
	*(STACK_ARGS()-0) = machine.reg[RES] ;
	machine.reg[RES] = makeSchemeVoid() ;
	DEBUG_TRACE("end: set: (set! loop (box loop))") ;
	/* start new begin statement */
	DEBUG_TRACE("start: application: (vector-set! loop 0 (lambda (a s) (or (null\? s) (if (andmap (lambda (b) (not (= a b))) s) ((vector-ref loop 0) (car s) (cdr s)) #f))))") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: lambda: (lambda (a s) (or (null\? s) (if (andmap (lambda (b) (not (= a b))) s) ((vector-ref loop 0) (car s) (cdr s)) #f)))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_11437 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_11438;
	Closure_Code_11437:
	FUNCTION_ENTER("(lambda (a s) (or (null\? s) (if (andmap (lambda (b) (not (= a b))) s) ((vector-ref loop 0) (car s) (cdr s)) #f)))");
	RUNTIME_ASSERT(STACK_ARGC() == 2) ;
	DEBUG_TRACE("start: or: (or (null\? s) (if (andmap (lambda (b) (not (= a b))) s) ((vector-ref loop 0) (car s) (cdr s)) #f))") ;
	DEBUG_TRACE("start: application: (null\? s)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: s") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: null\?") ;
	machine.reg[RES] = getSymbol("null?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: null\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_11427) ;
	ret_from_app_11427:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (null\? s)") ;
	if (sobIsntFalse(machine.reg[RES])) goto or_end_11426 ; /* end the 'or' if true */
	DEBUG_TRACE("start: if: (if (andmap (lambda (b) (not (= a b))) s) ((vector-ref loop 0) (car s) (cdr s)) #f)") ;

	DEBUG_TRACE("start: application: (andmap (lambda (b) (not (= a b))) s)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: s") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: lambda: (lambda (b) (not (= a b)))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_11429 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_11430;
	Closure_Code_11429:
	FUNCTION_ENTER("(lambda (b) (not (= a b)))");
	RUNTIME_ASSERT(STACK_ARGC() == 1) ;
	DEBUG_TRACE("start: app tp: (not (= a b))") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: application: (= a b)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: b") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: b") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var bound: a") ;
	machine.reg[RES] = getBoundVar (STACK_ENV(), 0, 0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var bound: a") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: =") ;
	machine.reg[RES] = getSymbol("=") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: =") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_11428) ;
	ret_from_app_11428:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (= a b)") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: var free: not") ;
	machine.reg[RES] = getSymbol("not") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: not") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 1 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +2 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 1, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: (not (= a b))") ;
	FUNCTION_EXIT ("(lambda (b) (not (= a b)))");
	Continue_11430:
	DEBUG_TRACE("end: lambda: (lambda (b) (not (= a b)))") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: andmap") ;
	machine.reg[RES] = getSymbol("andmap") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: andmap") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_11431) ;
	ret_from_app_11431:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (andmap (lambda (b) (not (= a b))) s)") ;
	if (sobIsFalse(machine.reg[RES])) goto If_Else_11435;
	DEBUG_NOTICE("branch taken");
	DEBUG_TRACE("start: app tp: ((vector-ref loop 0) (car s) (cdr s))") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: application: (cdr s)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: s") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: cdr") ;
	machine.reg[RES] = getSymbol("cdr") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: cdr") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_11432) ;
	ret_from_app_11432:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (cdr s)") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: application: (car s)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: s") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: car") ;
	machine.reg[RES] = getSymbol("car") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: car") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_11433) ;
	ret_from_app_11433:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (car s)") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: application: (vector-ref loop 0)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	machine.reg[RES] = makeSchemeInt(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var bound: loop") ;
	machine.reg[RES] = getBoundVar (STACK_ENV(), 0, 0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var bound: loop") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: vector-ref") ;
	machine.reg[RES] = getSymbol("vector-ref") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: vector-ref") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_11434) ;
	ret_from_app_11434:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (vector-ref loop 0)") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 2 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	machine.stack[machine.fp+2] = machine.stack[machine.sp+1] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +3 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 2, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: ((vector-ref loop 0) (car s) (cdr s))") ;
	goto If_Done_11436;
	If_Else_11435:
	DEBUG_NOTICE("branch not taken");
	machine.reg[RES] = makeSchemeBool(FALSE);
	If_Done_11436:

	DEBUG_TRACE("end: if: (if (andmap (lambda (b) (not (= a b))) s) ((vector-ref loop 0) (car s) (cdr s)) #f)") ;
	or_end_11426:
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: or: (or (null\? s) (if (andmap (lambda (b) (not (= a b))) s) ((vector-ref loop 0) (car s) (cdr s)) #f))") ;
	FUNCTION_EXIT ("(lambda (a s) (or (null\? s) (if (andmap (lambda (b) (not (= a b))) s) ((vector-ref loop 0) (car s) (cdr s)) #f)))");
	Continue_11438:
	DEBUG_TRACE("end: lambda: (lambda (a s) (or (null\? s) (if (andmap (lambda (b) (not (= a b))) s) ((vector-ref loop 0) (car s) (cdr s)) #f)))") ;
	push((void*)machine.reg[RES]) ;
	machine.reg[RES] = makeSchemeInt(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: loop") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: loop") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: vector-set!") ;
	machine.reg[RES] = getSymbol("vector-set!") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: vector-set!") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 3, machine.reg[1], &&ret_from_app_11439) ;
	ret_from_app_11439:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (vector-set! loop 0 (lambda (a s) (or (null\? s) (if (andmap (lambda (b) (not (= a b))) s) ((vector-ref loop 0) (car s) (cdr s)) #f))))") ;
	/* start new begin statement */
	DEBUG_TRACE("start: app tp: ((lambda () (lambda s ((vector-ref loop 0) (car s) (cdr s)))))") ;
	/* Start of Pushing args */
	/* End of Pushing args */
	DEBUG_TRACE("start: lambda: (lambda () (lambda s ((vector-ref loop 0) (car s) (cdr s))))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_11448 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_11449;
	Closure_Code_11448:
	FUNCTION_ENTER("(lambda () (lambda s ((vector-ref loop 0) (car s) (cdr s))))");
	RUNTIME_ASSERT(STACK_ARGC() == 0) ;
	DEBUG_TRACE("start: lambda opt: (lambda s ((vector-ref loop 0) (car s) (cdr s)))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[0]) ;
	machine.reg[1] = makeLocalEnv(STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[0] = extendEnv((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure(machine.reg[0], &&Closure_Code_11440) ;
	goto Continue_11441 ;
	Closure_Code_11440:
	FUNCTION_ENTER("(lambda s ((vector-ref loop 0) (car s) (cdr s)))") ;
	RUNTIME_ASSERT(STACK_ARGC() >= 0) ;
	push((void*)machine.reg[0]) ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	push((void*)machine.reg[3]) ;
	/* backups since shifting the frame changes argc */
	machine.reg[1] = (void*)STACK_ARGC() ;
	machine.reg[1] = (void*)((Amount)machine.reg[1] - 0) ; /* amount of optional args */
	machine.reg[3] = (void*)(STACK_FRAME_SIZE()+4) ;
	machine.reg[0] = stackToSchemeList(STACK_ARGS()-0, (Amount)machine.reg[1]) ;
	/* shift_frame_up */
	machine.reg[2] = (void*)(machine.sp) ; /* loop counter */
	shift_frame_up_loop_start_11443:
	if (!((Amount)machine.reg[2] >= machine.sp-(Amount)machine.reg[3]+1)) goto shift_frame_up_loop_end_11444 ;
	machine.stack[(Amount)machine.reg[2]] = machine.stack[(Amount)machine.reg[2]-1] ;
	machine.reg[2] = (void*)((Amount)machine.reg[2] - 1) ; /* step */
	goto shift_frame_up_loop_start_11443 ;
	shift_frame_up_loop_end_11444:
	machine.fp += 1 ;
	goto after_frame_shift_11442 ;
	after_frame_shift_11442:
	machine.sp = machine.fp+4 ;
	machine.stack[machine.fp-4] = machine.stack[machine.fp-4]+1 ; /* fix ARGC, basically, STACK_ARGC() -= ... */
	*(STACK_ARGS()-0) = machine.reg[0] ; /* fix last argument */
	machine.reg[3] = pop() ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("start: app tp: ((vector-ref loop 0) (car s) (cdr s))") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: application: (cdr s)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: s") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: cdr") ;
	machine.reg[RES] = getSymbol("cdr") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: cdr") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_11445) ;
	ret_from_app_11445:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (cdr s)") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: application: (car s)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: s") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: car") ;
	machine.reg[RES] = getSymbol("car") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: car") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_11446) ;
	ret_from_app_11446:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (car s)") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: application: (vector-ref loop 0)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	machine.reg[RES] = makeSchemeInt(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var bound: loop") ;
	machine.reg[RES] = getBoundVar (STACK_ENV(), 1, 0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var bound: loop") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: vector-ref") ;
	machine.reg[RES] = getSymbol("vector-ref") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: vector-ref") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_11447) ;
	ret_from_app_11447:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (vector-ref loop 0)") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 2 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	machine.stack[machine.fp+2] = machine.stack[machine.sp+1] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +3 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 2, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: ((vector-ref loop 0) (car s) (cdr s))") ;
	FUNCTION_EXIT("(lambda s ((vector-ref loop 0) (car s) (cdr s)))") ;
	Continue_11441:
	machine.reg[0] = pop() ;
	machine.reg[1] = pop() ;
	DEBUG_TRACE("end: lambda opt: (lambda s ((vector-ref loop 0) (car s) (cdr s)))") ;
	FUNCTION_EXIT ("(lambda () (lambda s ((vector-ref loop 0) (car s) (cdr s))))");
	Continue_11449:
	DEBUG_TRACE("end: lambda: (lambda () (lambda s ((vector-ref loop 0) (car s) (cdr s))))") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 0 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	/* End of overwriting old frame */
	machine.sp = machine.fp +1 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 0, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: ((lambda () (lambda s ((vector-ref loop 0) (car s) (cdr s)))))") ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: sequence: (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (a s) (or (null\? s) (if (andmap (lambda (b) (not (= a b))) s) ((vector-ref loop 0) (car s) (cdr s)) #f)))) ((lambda () (lambda s ((vector-ref loop 0) (car s) (cdr s))))))") ;
	FUNCTION_EXIT ("(lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (a s) (or (null\? s) (if (andmap (lambda (b) (not (= a b))) s) ((vector-ref loop 0) (car s) (cdr s)) #f)))) ((lambda () (lambda s ((vector-ref loop 0) (car s) (cdr s)))))))");
	Continue_11451:
	DEBUG_TRACE("end: lambda: (lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (a s) (or (null\? s) (if (andmap (lambda (b) (not (= a b))) s) ((vector-ref loop 0) (car s) (cdr s)) #f)))) ((lambda () (lambda s ((vector-ref loop 0) (car s) (cdr s)))))))") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_11424) ;
	ret_from_app_11424:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (a s) (or (null\? s) (if (andmap (lambda (b) (not (= a b))) s) ((vector-ref loop 0) (car s) (cdr s)) #f)))) ((lambda () (lambda s ((vector-ref loop 0) (car s) (cdr s))))))) #f)") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("<>") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define <> ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (a s) (or (null\? s) (if (andmap (lambda (b) (not (= a b))) s) ((vector-ref loop 0) (car s) (cdr s)) #f)))) ((lambda () (lambda s ((vector-ref loop 0) (car s) (cdr s))))))) #f))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_11423:
	
	pushDummyFrame(&&exit_11452) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define not (lambda (x) (if x #f #t))) **********") ;
	DEBUG_TRACE("start: def: (define not (lambda (x) (if x #f #t)))") ;
	DEBUG_TRACE("start: lambda: (lambda (x) (if x #f #t))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_11455 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_11456;
	Closure_Code_11455:
	FUNCTION_ENTER("(lambda (x) (if x #f #t))");
	RUNTIME_ASSERT(STACK_ARGC() == 1) ;
	DEBUG_TRACE("start: if: (if x #f #t)") ;

	DEBUG_TRACE("start: var param: x") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: x") ;
	if (sobIsFalse(machine.reg[RES])) goto If_Else_11453;
	DEBUG_NOTICE("branch taken");
	machine.reg[RES] = makeSchemeBool(FALSE);
	goto If_Done_11454;
	If_Else_11453:
	DEBUG_NOTICE("branch not taken");
	machine.reg[RES] = makeSchemeBool(TRUE);
	If_Done_11454:

	DEBUG_TRACE("end: if: (if x #f #t)") ;
	FUNCTION_EXIT ("(lambda (x) (if x #f #t))");
	Continue_11456:
	DEBUG_TRACE("end: lambda: (lambda (x) (if x #f #t))") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("not") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define not (lambda (x) (if x #f #t)))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_11452:
	
	pushDummyFrame(&&exit_11457) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define compose ((lambda (binary-compose) (lambda s (foldr binary-compose (lambda (x) x) s))) (lambda (f g) (lambda (x) (f (g x)))))) **********") ;
	DEBUG_TRACE("start: def: (define compose ((lambda (binary-compose) (lambda s (foldr binary-compose (lambda (x) x) s))) (lambda (f g) (lambda (x) (f (g x))))))") ;
	DEBUG_TRACE("start: application: ((lambda (binary-compose) (lambda s (foldr binary-compose (lambda (x) x) s))) (lambda (f g) (lambda (x) (f (g x)))))") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: lambda: (lambda (f g) (lambda (x) (f (g x))))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_11461 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_11462;
	Closure_Code_11461:
	FUNCTION_ENTER("(lambda (f g) (lambda (x) (f (g x))))");
	RUNTIME_ASSERT(STACK_ARGC() == 2) ;
	DEBUG_TRACE("start: lambda: (lambda (x) (f (g x)))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_11459 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_11460;
	Closure_Code_11459:
	FUNCTION_ENTER("(lambda (x) (f (g x)))");
	RUNTIME_ASSERT(STACK_ARGC() == 1) ;
	DEBUG_TRACE("start: app tp: (f (g x))") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: application: (g x)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: x") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: x") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var bound: g") ;
	machine.reg[RES] = getBoundVar (STACK_ENV(), 0, 1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var bound: g") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_11458) ;
	ret_from_app_11458:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (g x)") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: var bound: f") ;
	machine.reg[RES] = getBoundVar (STACK_ENV(), 0, 0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var bound: f") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 1 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +2 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 1, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: (f (g x))") ;
	FUNCTION_EXIT ("(lambda (x) (f (g x)))");
	Continue_11460:
	DEBUG_TRACE("end: lambda: (lambda (x) (f (g x)))") ;
	FUNCTION_EXIT ("(lambda (f g) (lambda (x) (f (g x))))");
	Continue_11462:
	DEBUG_TRACE("end: lambda: (lambda (f g) (lambda (x) (f (g x))))") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: lambda: (lambda (binary-compose) (lambda s (foldr binary-compose (lambda (x) x) s)))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_11471 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_11472;
	Closure_Code_11471:
	FUNCTION_ENTER("(lambda (binary-compose) (lambda s (foldr binary-compose (lambda (x) x) s)))");
	RUNTIME_ASSERT(STACK_ARGC() == 1) ;
	DEBUG_TRACE("start: lambda opt: (lambda s (foldr binary-compose (lambda (x) x) s))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[0]) ;
	machine.reg[1] = makeLocalEnv(STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[0] = extendEnv((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure(machine.reg[0], &&Closure_Code_11464) ;
	goto Continue_11465 ;
	Closure_Code_11464:
	FUNCTION_ENTER("(lambda s (foldr binary-compose (lambda (x) x) s))") ;
	RUNTIME_ASSERT(STACK_ARGC() >= 0) ;
	push((void*)machine.reg[0]) ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	push((void*)machine.reg[3]) ;
	/* backups since shifting the frame changes argc */
	machine.reg[1] = (void*)STACK_ARGC() ;
	machine.reg[1] = (void*)((Amount)machine.reg[1] - 0) ; /* amount of optional args */
	machine.reg[3] = (void*)(STACK_FRAME_SIZE()+4) ;
	machine.reg[0] = stackToSchemeList(STACK_ARGS()-0, (Amount)machine.reg[1]) ;
	/* shift_frame_up */
	machine.reg[2] = (void*)(machine.sp) ; /* loop counter */
	shift_frame_up_loop_start_11467:
	if (!((Amount)machine.reg[2] >= machine.sp-(Amount)machine.reg[3]+1)) goto shift_frame_up_loop_end_11468 ;
	machine.stack[(Amount)machine.reg[2]] = machine.stack[(Amount)machine.reg[2]-1] ;
	machine.reg[2] = (void*)((Amount)machine.reg[2] - 1) ; /* step */
	goto shift_frame_up_loop_start_11467 ;
	shift_frame_up_loop_end_11468:
	machine.fp += 1 ;
	goto after_frame_shift_11466 ;
	after_frame_shift_11466:
	machine.sp = machine.fp+4 ;
	machine.stack[machine.fp-4] = machine.stack[machine.fp-4]+1 ; /* fix ARGC, basically, STACK_ARGC() -= ... */
	*(STACK_ARGS()-0) = machine.reg[0] ; /* fix last argument */
	machine.reg[3] = pop() ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("start: app tp: (foldr binary-compose (lambda (x) x) s)") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: var param: s") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: lambda: (lambda (x) x)") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_11469 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_11470;
	Closure_Code_11469:
	FUNCTION_ENTER("(lambda (x) x)");
	RUNTIME_ASSERT(STACK_ARGC() == 1) ;
	DEBUG_TRACE("start: var param: x") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: x") ;
	FUNCTION_EXIT ("(lambda (x) x)");
	Continue_11470:
	DEBUG_TRACE("end: lambda: (lambda (x) x)") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var bound: binary-compose") ;
	machine.reg[RES] = getBoundVar (STACK_ENV(), 0, 0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var bound: binary-compose") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: var free: foldr") ;
	machine.reg[RES] = getSymbol("foldr") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: foldr") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 3 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	machine.stack[machine.fp+2] = machine.stack[machine.sp+1] ;
	machine.stack[machine.fp+3] = machine.stack[machine.sp+2] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +4 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 3, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: (foldr binary-compose (lambda (x) x) s)") ;
	FUNCTION_EXIT("(lambda s (foldr binary-compose (lambda (x) x) s))") ;
	Continue_11465:
	machine.reg[0] = pop() ;
	machine.reg[1] = pop() ;
	DEBUG_TRACE("end: lambda opt: (lambda s (foldr binary-compose (lambda (x) x) s))") ;
	FUNCTION_EXIT ("(lambda (binary-compose) (lambda s (foldr binary-compose (lambda (x) x) s)))");
	Continue_11472:
	DEBUG_TRACE("end: lambda: (lambda (binary-compose) (lambda s (foldr binary-compose (lambda (x) x) s)))") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_11463) ;
	ret_from_app_11463:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: ((lambda (binary-compose) (lambda s (foldr binary-compose (lambda (x) x) s))) (lambda (f g) (lambda (x) (f (g x)))))") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("compose") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define compose ((lambda (binary-compose) (lambda s (foldr binary-compose (lambda (x) x) s))) (lambda (f g) (lambda (x) (f (g x))))))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_11457:
	
	pushDummyFrame(&&exit_11473) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define length (lambda (s) (if (null\? s) 0 (add1 (length (cdr s)))))) **********") ;
	DEBUG_TRACE("start: def: (define length (lambda (s) (if (null\? s) 0 (add1 (length (cdr s))))))") ;
	DEBUG_TRACE("start: lambda: (lambda (s) (if (null\? s) 0 (add1 (length (cdr s)))))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_11479 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_11480;
	Closure_Code_11479:
	FUNCTION_ENTER("(lambda (s) (if (null\? s) 0 (add1 (length (cdr s)))))");
	RUNTIME_ASSERT(STACK_ARGC() == 1) ;
	DEBUG_TRACE("start: if: (if (null\? s) 0 (add1 (length (cdr s))))") ;

	DEBUG_TRACE("start: application: (null\? s)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: s") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: null\?") ;
	machine.reg[RES] = getSymbol("null?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: null\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_11474) ;
	ret_from_app_11474:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (null\? s)") ;
	if (sobIsFalse(machine.reg[RES])) goto If_Else_11477;
	DEBUG_NOTICE("branch taken");
	machine.reg[RES] = makeSchemeInt(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	goto If_Done_11478;
	If_Else_11477:
	DEBUG_NOTICE("branch not taken");
	DEBUG_TRACE("start: app tp: (add1 (length (cdr s)))") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: application: (length (cdr s))") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: application: (cdr s)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: s") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: cdr") ;
	machine.reg[RES] = getSymbol("cdr") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: cdr") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_11475) ;
	ret_from_app_11475:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (cdr s)") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: length") ;
	machine.reg[RES] = getSymbol("length") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: length") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_11476) ;
	ret_from_app_11476:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (length (cdr s))") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: var free: add1") ;
	machine.reg[RES] = getSymbol("add1") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: add1") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 1 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +2 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 1, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: (add1 (length (cdr s)))") ;
	If_Done_11478:

	DEBUG_TRACE("end: if: (if (null\? s) 0 (add1 (length (cdr s))))") ;
	FUNCTION_EXIT ("(lambda (s) (if (null\? s) 0 (add1 (length (cdr s)))))");
	Continue_11480:
	DEBUG_TRACE("end: lambda: (lambda (s) (if (null\? s) 0 (add1 (length (cdr s)))))") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("length") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define length (lambda (s) (if (null\? s) 0 (add1 (length (cdr s))))))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_11473:
	
	pushDummyFrame(&&exit_11481) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define caar (compose car car)) **********") ;
	DEBUG_TRACE("start: def: (define caar (compose car car))") ;
	DEBUG_TRACE("start: application: (compose car car)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var free: car") ;
	machine.reg[RES] = getSymbol("car") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: car") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var free: car") ;
	machine.reg[RES] = getSymbol("car") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: car") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: compose") ;
	machine.reg[RES] = getSymbol("compose") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: compose") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_11482) ;
	ret_from_app_11482:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (compose car car)") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("caar") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define caar (compose car car))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_11481:
	
	pushDummyFrame(&&exit_11483) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define cadr (compose car cdr)) **********") ;
	DEBUG_TRACE("start: def: (define cadr (compose car cdr))") ;
	DEBUG_TRACE("start: application: (compose car cdr)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var free: cdr") ;
	machine.reg[RES] = getSymbol("cdr") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: cdr") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var free: car") ;
	machine.reg[RES] = getSymbol("car") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: car") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: compose") ;
	machine.reg[RES] = getSymbol("compose") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: compose") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_11484) ;
	ret_from_app_11484:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (compose car cdr)") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("cadr") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define cadr (compose car cdr))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_11483:
	
	pushDummyFrame(&&exit_11485) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define cdar (compose cdr car)) **********") ;
	DEBUG_TRACE("start: def: (define cdar (compose cdr car))") ;
	DEBUG_TRACE("start: application: (compose cdr car)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var free: car") ;
	machine.reg[RES] = getSymbol("car") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: car") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var free: cdr") ;
	machine.reg[RES] = getSymbol("cdr") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: cdr") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: compose") ;
	machine.reg[RES] = getSymbol("compose") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: compose") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_11486) ;
	ret_from_app_11486:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (compose cdr car)") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("cdar") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define cdar (compose cdr car))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_11485:
	
	pushDummyFrame(&&exit_11487) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define cddr (compose cdr cdr)) **********") ;
	DEBUG_TRACE("start: def: (define cddr (compose cdr cdr))") ;
	DEBUG_TRACE("start: application: (compose cdr cdr)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var free: cdr") ;
	machine.reg[RES] = getSymbol("cdr") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: cdr") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var free: cdr") ;
	machine.reg[RES] = getSymbol("cdr") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: cdr") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: compose") ;
	machine.reg[RES] = getSymbol("compose") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: compose") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_11488) ;
	ret_from_app_11488:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (compose cdr cdr)") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("cddr") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define cddr (compose cdr cdr))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_11487:
	
	pushDummyFrame(&&exit_11489) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define caaar (compose car caar)) **********") ;
	DEBUG_TRACE("start: def: (define caaar (compose car caar))") ;
	DEBUG_TRACE("start: application: (compose car caar)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var free: caar") ;
	machine.reg[RES] = getSymbol("caar") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: caar") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var free: car") ;
	machine.reg[RES] = getSymbol("car") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: car") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: compose") ;
	machine.reg[RES] = getSymbol("compose") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: compose") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_11490) ;
	ret_from_app_11490:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (compose car caar)") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("caaar") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define caaar (compose car caar))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_11489:
	
	pushDummyFrame(&&exit_11491) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define caadr (compose car cadr)) **********") ;
	DEBUG_TRACE("start: def: (define caadr (compose car cadr))") ;
	DEBUG_TRACE("start: application: (compose car cadr)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var free: cadr") ;
	machine.reg[RES] = getSymbol("cadr") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: cadr") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var free: car") ;
	machine.reg[RES] = getSymbol("car") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: car") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: compose") ;
	machine.reg[RES] = getSymbol("compose") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: compose") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_11492) ;
	ret_from_app_11492:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (compose car cadr)") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("caadr") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define caadr (compose car cadr))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_11491:
	
	pushDummyFrame(&&exit_11493) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define cadar (compose car cdar)) **********") ;
	DEBUG_TRACE("start: def: (define cadar (compose car cdar))") ;
	DEBUG_TRACE("start: application: (compose car cdar)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var free: cdar") ;
	machine.reg[RES] = getSymbol("cdar") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: cdar") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var free: car") ;
	machine.reg[RES] = getSymbol("car") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: car") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: compose") ;
	machine.reg[RES] = getSymbol("compose") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: compose") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_11494) ;
	ret_from_app_11494:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (compose car cdar)") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("cadar") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define cadar (compose car cdar))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_11493:
	
	pushDummyFrame(&&exit_11495) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define caddr (compose car cddr)) **********") ;
	DEBUG_TRACE("start: def: (define caddr (compose car cddr))") ;
	DEBUG_TRACE("start: application: (compose car cddr)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var free: cddr") ;
	machine.reg[RES] = getSymbol("cddr") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: cddr") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var free: car") ;
	machine.reg[RES] = getSymbol("car") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: car") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: compose") ;
	machine.reg[RES] = getSymbol("compose") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: compose") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_11496) ;
	ret_from_app_11496:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (compose car cddr)") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("caddr") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define caddr (compose car cddr))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_11495:
	
	pushDummyFrame(&&exit_11497) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define cdaar (compose cdr caar)) **********") ;
	DEBUG_TRACE("start: def: (define cdaar (compose cdr caar))") ;
	DEBUG_TRACE("start: application: (compose cdr caar)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var free: caar") ;
	machine.reg[RES] = getSymbol("caar") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: caar") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var free: cdr") ;
	machine.reg[RES] = getSymbol("cdr") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: cdr") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: compose") ;
	machine.reg[RES] = getSymbol("compose") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: compose") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_11498) ;
	ret_from_app_11498:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (compose cdr caar)") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("cdaar") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define cdaar (compose cdr caar))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_11497:
	
	pushDummyFrame(&&exit_11499) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define cdadr (compose cdr cadr)) **********") ;
	DEBUG_TRACE("start: def: (define cdadr (compose cdr cadr))") ;
	DEBUG_TRACE("start: application: (compose cdr cadr)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var free: cadr") ;
	machine.reg[RES] = getSymbol("cadr") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: cadr") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var free: cdr") ;
	machine.reg[RES] = getSymbol("cdr") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: cdr") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: compose") ;
	machine.reg[RES] = getSymbol("compose") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: compose") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_11500) ;
	ret_from_app_11500:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (compose cdr cadr)") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("cdadr") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define cdadr (compose cdr cadr))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_11499:
	
	pushDummyFrame(&&exit_11501) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define cddar (compose cdr cdar)) **********") ;
	DEBUG_TRACE("start: def: (define cddar (compose cdr cdar))") ;
	DEBUG_TRACE("start: application: (compose cdr cdar)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var free: cdar") ;
	machine.reg[RES] = getSymbol("cdar") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: cdar") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var free: cdr") ;
	machine.reg[RES] = getSymbol("cdr") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: cdr") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: compose") ;
	machine.reg[RES] = getSymbol("compose") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: compose") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_11502) ;
	ret_from_app_11502:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (compose cdr cdar)") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("cddar") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define cddar (compose cdr cdar))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_11501:
	
	pushDummyFrame(&&exit_11503) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define cdddr (compose cdr cddr)) **********") ;
	DEBUG_TRACE("start: def: (define cdddr (compose cdr cddr))") ;
	DEBUG_TRACE("start: application: (compose cdr cddr)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var free: cddr") ;
	machine.reg[RES] = getSymbol("cddr") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: cddr") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var free: cdr") ;
	machine.reg[RES] = getSymbol("cdr") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: cdr") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: compose") ;
	machine.reg[RES] = getSymbol("compose") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: compose") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_11504) ;
	ret_from_app_11504:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (compose cdr cddr)") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("cdddr") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define cdddr (compose cdr cddr))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_11503:
	
	pushDummyFrame(&&exit_11505) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define caaaar (compose car caaar)) **********") ;
	DEBUG_TRACE("start: def: (define caaaar (compose car caaar))") ;
	DEBUG_TRACE("start: application: (compose car caaar)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var free: caaar") ;
	machine.reg[RES] = getSymbol("caaar") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: caaar") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var free: car") ;
	machine.reg[RES] = getSymbol("car") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: car") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: compose") ;
	machine.reg[RES] = getSymbol("compose") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: compose") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_11506) ;
	ret_from_app_11506:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (compose car caaar)") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("caaaar") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define caaaar (compose car caaar))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_11505:
	
	pushDummyFrame(&&exit_11507) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define caaadr (compose car caadr)) **********") ;
	DEBUG_TRACE("start: def: (define caaadr (compose car caadr))") ;
	DEBUG_TRACE("start: application: (compose car caadr)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var free: caadr") ;
	machine.reg[RES] = getSymbol("caadr") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: caadr") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var free: car") ;
	machine.reg[RES] = getSymbol("car") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: car") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: compose") ;
	machine.reg[RES] = getSymbol("compose") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: compose") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_11508) ;
	ret_from_app_11508:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (compose car caadr)") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("caaadr") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define caaadr (compose car caadr))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_11507:
	
	pushDummyFrame(&&exit_11509) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define caadar (compose car cadar)) **********") ;
	DEBUG_TRACE("start: def: (define caadar (compose car cadar))") ;
	DEBUG_TRACE("start: application: (compose car cadar)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var free: cadar") ;
	machine.reg[RES] = getSymbol("cadar") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: cadar") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var free: car") ;
	machine.reg[RES] = getSymbol("car") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: car") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: compose") ;
	machine.reg[RES] = getSymbol("compose") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: compose") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_11510) ;
	ret_from_app_11510:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (compose car cadar)") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("caadar") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define caadar (compose car cadar))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_11509:
	
	pushDummyFrame(&&exit_11511) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define caaddr (compose car caddr)) **********") ;
	DEBUG_TRACE("start: def: (define caaddr (compose car caddr))") ;
	DEBUG_TRACE("start: application: (compose car caddr)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var free: caddr") ;
	machine.reg[RES] = getSymbol("caddr") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: caddr") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var free: car") ;
	machine.reg[RES] = getSymbol("car") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: car") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: compose") ;
	machine.reg[RES] = getSymbol("compose") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: compose") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_11512) ;
	ret_from_app_11512:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (compose car caddr)") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("caaddr") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define caaddr (compose car caddr))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_11511:
	
	pushDummyFrame(&&exit_11513) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define cadaar (compose car cdaar)) **********") ;
	DEBUG_TRACE("start: def: (define cadaar (compose car cdaar))") ;
	DEBUG_TRACE("start: application: (compose car cdaar)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var free: cdaar") ;
	machine.reg[RES] = getSymbol("cdaar") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: cdaar") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var free: car") ;
	machine.reg[RES] = getSymbol("car") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: car") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: compose") ;
	machine.reg[RES] = getSymbol("compose") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: compose") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_11514) ;
	ret_from_app_11514:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (compose car cdaar)") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("cadaar") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define cadaar (compose car cdaar))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_11513:
	
	pushDummyFrame(&&exit_11515) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define cadadr (compose car cdadr)) **********") ;
	DEBUG_TRACE("start: def: (define cadadr (compose car cdadr))") ;
	DEBUG_TRACE("start: application: (compose car cdadr)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var free: cdadr") ;
	machine.reg[RES] = getSymbol("cdadr") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: cdadr") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var free: car") ;
	machine.reg[RES] = getSymbol("car") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: car") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: compose") ;
	machine.reg[RES] = getSymbol("compose") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: compose") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_11516) ;
	ret_from_app_11516:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (compose car cdadr)") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("cadadr") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define cadadr (compose car cdadr))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_11515:
	
	pushDummyFrame(&&exit_11517) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define caddar (compose car cddar)) **********") ;
	DEBUG_TRACE("start: def: (define caddar (compose car cddar))") ;
	DEBUG_TRACE("start: application: (compose car cddar)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var free: cddar") ;
	machine.reg[RES] = getSymbol("cddar") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: cddar") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var free: car") ;
	machine.reg[RES] = getSymbol("car") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: car") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: compose") ;
	machine.reg[RES] = getSymbol("compose") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: compose") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_11518) ;
	ret_from_app_11518:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (compose car cddar)") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("caddar") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define caddar (compose car cddar))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_11517:
	
	pushDummyFrame(&&exit_11519) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define cadddr (compose car cdddr)) **********") ;
	DEBUG_TRACE("start: def: (define cadddr (compose car cdddr))") ;
	DEBUG_TRACE("start: application: (compose car cdddr)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var free: cdddr") ;
	machine.reg[RES] = getSymbol("cdddr") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: cdddr") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var free: car") ;
	machine.reg[RES] = getSymbol("car") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: car") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: compose") ;
	machine.reg[RES] = getSymbol("compose") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: compose") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_11520) ;
	ret_from_app_11520:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (compose car cdddr)") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("cadddr") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define cadddr (compose car cdddr))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_11519:
	
	pushDummyFrame(&&exit_11521) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define cdaaar (compose cdr caaar)) **********") ;
	DEBUG_TRACE("start: def: (define cdaaar (compose cdr caaar))") ;
	DEBUG_TRACE("start: application: (compose cdr caaar)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var free: caaar") ;
	machine.reg[RES] = getSymbol("caaar") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: caaar") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var free: cdr") ;
	machine.reg[RES] = getSymbol("cdr") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: cdr") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: compose") ;
	machine.reg[RES] = getSymbol("compose") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: compose") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_11522) ;
	ret_from_app_11522:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (compose cdr caaar)") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("cdaaar") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define cdaaar (compose cdr caaar))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_11521:
	
	pushDummyFrame(&&exit_11523) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define cdaadr (compose cdr caadr)) **********") ;
	DEBUG_TRACE("start: def: (define cdaadr (compose cdr caadr))") ;
	DEBUG_TRACE("start: application: (compose cdr caadr)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var free: caadr") ;
	machine.reg[RES] = getSymbol("caadr") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: caadr") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var free: cdr") ;
	machine.reg[RES] = getSymbol("cdr") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: cdr") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: compose") ;
	machine.reg[RES] = getSymbol("compose") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: compose") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_11524) ;
	ret_from_app_11524:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (compose cdr caadr)") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("cdaadr") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define cdaadr (compose cdr caadr))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_11523:
	
	pushDummyFrame(&&exit_11525) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define cdadar (compose cdr cadar)) **********") ;
	DEBUG_TRACE("start: def: (define cdadar (compose cdr cadar))") ;
	DEBUG_TRACE("start: application: (compose cdr cadar)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var free: cadar") ;
	machine.reg[RES] = getSymbol("cadar") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: cadar") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var free: cdr") ;
	machine.reg[RES] = getSymbol("cdr") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: cdr") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: compose") ;
	machine.reg[RES] = getSymbol("compose") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: compose") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_11526) ;
	ret_from_app_11526:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (compose cdr cadar)") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("cdadar") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define cdadar (compose cdr cadar))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_11525:
	
	pushDummyFrame(&&exit_11527) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define cdaddr (compose cdr caddr)) **********") ;
	DEBUG_TRACE("start: def: (define cdaddr (compose cdr caddr))") ;
	DEBUG_TRACE("start: application: (compose cdr caddr)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var free: caddr") ;
	machine.reg[RES] = getSymbol("caddr") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: caddr") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var free: cdr") ;
	machine.reg[RES] = getSymbol("cdr") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: cdr") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: compose") ;
	machine.reg[RES] = getSymbol("compose") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: compose") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_11528) ;
	ret_from_app_11528:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (compose cdr caddr)") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("cdaddr") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define cdaddr (compose cdr caddr))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_11527:
	
	pushDummyFrame(&&exit_11529) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define cddaar (compose cdr cdaar)) **********") ;
	DEBUG_TRACE("start: def: (define cddaar (compose cdr cdaar))") ;
	DEBUG_TRACE("start: application: (compose cdr cdaar)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var free: cdaar") ;
	machine.reg[RES] = getSymbol("cdaar") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: cdaar") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var free: cdr") ;
	machine.reg[RES] = getSymbol("cdr") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: cdr") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: compose") ;
	machine.reg[RES] = getSymbol("compose") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: compose") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_11530) ;
	ret_from_app_11530:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (compose cdr cdaar)") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("cddaar") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define cddaar (compose cdr cdaar))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_11529:
	
	pushDummyFrame(&&exit_11531) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define cddadr (compose cdr cdadr)) **********") ;
	DEBUG_TRACE("start: def: (define cddadr (compose cdr cdadr))") ;
	DEBUG_TRACE("start: application: (compose cdr cdadr)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var free: cdadr") ;
	machine.reg[RES] = getSymbol("cdadr") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: cdadr") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var free: cdr") ;
	machine.reg[RES] = getSymbol("cdr") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: cdr") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: compose") ;
	machine.reg[RES] = getSymbol("compose") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: compose") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_11532) ;
	ret_from_app_11532:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (compose cdr cdadr)") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("cddadr") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define cddadr (compose cdr cdadr))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_11531:
	
	pushDummyFrame(&&exit_11533) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define cdddar (compose cdr cddar)) **********") ;
	DEBUG_TRACE("start: def: (define cdddar (compose cdr cddar))") ;
	DEBUG_TRACE("start: application: (compose cdr cddar)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var free: cddar") ;
	machine.reg[RES] = getSymbol("cddar") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: cddar") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var free: cdr") ;
	machine.reg[RES] = getSymbol("cdr") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: cdr") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: compose") ;
	machine.reg[RES] = getSymbol("compose") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: compose") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_11534) ;
	ret_from_app_11534:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (compose cdr cddar)") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("cdddar") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define cdddar (compose cdr cddar))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_11533:
	
	pushDummyFrame(&&exit_11535) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define cddddr (compose cdr cdddr)) **********") ;
	DEBUG_TRACE("start: def: (define cddddr (compose cdr cdddr))") ;
	DEBUG_TRACE("start: application: (compose cdr cdddr)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var free: cdddr") ;
	machine.reg[RES] = getSymbol("cdddr") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: cdddr") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var free: cdr") ;
	machine.reg[RES] = getSymbol("cdr") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: cdr") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: compose") ;
	machine.reg[RES] = getSymbol("compose") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: compose") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_11536) ;
	ret_from_app_11536:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (compose cdr cdddr)") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("cddddr") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define cddddr (compose cdr cdddr))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_11535:
	
	pushDummyFrame(&&exit_11537) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define ^variadic-right-from-binary (lambda (binary-op base-value) ((lambda (op-list) (begin (set! op-list (box op-list)) (vector-set! op-list 0 (lambda (s) (if (null\? s) base-value (binary-op (car s) ((vector-ref op-list 0) (cdr s)))))) ((lambda () (lambda args ((vector-ref op-list 0) args)))))) #f))) **********") ;
	DEBUG_TRACE("start: def: (define ^variadic-right-from-binary (lambda (binary-op base-value) ((lambda (op-list) (begin (set! op-list (box op-list)) (vector-set! op-list 0 (lambda (s) (if (null\? s) base-value (binary-op (car s) ((vector-ref op-list 0) (cdr s)))))) ((lambda () (lambda args ((vector-ref op-list 0) args)))))) #f)))") ;
	DEBUG_TRACE("start: lambda: (lambda (binary-op base-value) ((lambda (op-list) (begin (set! op-list (box op-list)) (vector-set! op-list 0 (lambda (s) (if (null\? s) base-value (binary-op (car s) ((vector-ref op-list 0) (cdr s)))))) ((lambda () (lambda args ((vector-ref op-list 0) args)))))) #f))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_11559 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_11560;
	Closure_Code_11559:
	FUNCTION_ENTER("(lambda (binary-op base-value) ((lambda (op-list) (begin (set! op-list (box op-list)) (vector-set! op-list 0 (lambda (s) (if (null\? s) base-value (binary-op (car s) ((vector-ref op-list 0) (cdr s)))))) ((lambda () (lambda args ((vector-ref op-list 0) args)))))) #f))");
	RUNTIME_ASSERT(STACK_ARGC() == 2) ;
	DEBUG_TRACE("start: app tp: ((lambda (op-list) (begin (set! op-list (box op-list)) (vector-set! op-list 0 (lambda (s) (if (null\? s) base-value (binary-op (car s) ((vector-ref op-list 0) (cdr s)))))) ((lambda () (lambda args ((vector-ref op-list 0) args)))))) #f)") ;
	/* Start of Pushing args */
	machine.reg[RES] = makeSchemeBool(FALSE);
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: lambda: (lambda (op-list) (begin (set! op-list (box op-list)) (vector-set! op-list 0 (lambda (s) (if (null\? s) base-value (binary-op (car s) ((vector-ref op-list 0) (cdr s)))))) ((lambda () (lambda args ((vector-ref op-list 0) args))))))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_11557 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_11558;
	Closure_Code_11557:
	FUNCTION_ENTER("(lambda (op-list) (begin (set! op-list (box op-list)) (vector-set! op-list 0 (lambda (s) (if (null\? s) base-value (binary-op (car s) ((vector-ref op-list 0) (cdr s)))))) ((lambda () (lambda args ((vector-ref op-list 0) args))))))");
	RUNTIME_ASSERT(STACK_ARGC() == 1) ;
	DEBUG_TRACE("start: sequence: (begin (set! op-list (box op-list)) (vector-set! op-list 0 (lambda (s) (if (null\? s) base-value (binary-op (car s) ((vector-ref op-list 0) (cdr s)))))) ((lambda () (lambda args ((vector-ref op-list 0) args)))))") ;
	/* start new begin statement */
	DEBUG_TRACE("start: set: (set! op-list (box op-list))") ;
	DEBUG_TRACE("start: application: (box op-list)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: op-list") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: op-list") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: box") ;
	machine.reg[RES] = getSymbol("box") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: box") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_11538) ;
	ret_from_app_11538:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (box op-list)") ;
	*(STACK_ARGS()-0) = machine.reg[RES] ;
	machine.reg[RES] = makeSchemeVoid() ;
	DEBUG_TRACE("end: set: (set! op-list (box op-list))") ;
	/* start new begin statement */
	DEBUG_TRACE("start: application: (vector-set! op-list 0 (lambda (s) (if (null\? s) base-value (binary-op (car s) ((vector-ref op-list 0) (cdr s))))))") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: lambda: (lambda (s) (if (null\? s) base-value (binary-op (car s) ((vector-ref op-list 0) (cdr s)))))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_11546 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_11547;
	Closure_Code_11546:
	FUNCTION_ENTER("(lambda (s) (if (null\? s) base-value (binary-op (car s) ((vector-ref op-list 0) (cdr s)))))");
	RUNTIME_ASSERT(STACK_ARGC() == 1) ;
	DEBUG_TRACE("start: if: (if (null\? s) base-value (binary-op (car s) ((vector-ref op-list 0) (cdr s))))") ;

	DEBUG_TRACE("start: application: (null\? s)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: s") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: null\?") ;
	machine.reg[RES] = getSymbol("null?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: null\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_11539) ;
	ret_from_app_11539:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (null\? s)") ;
	if (sobIsFalse(machine.reg[RES])) goto If_Else_11544;
	DEBUG_NOTICE("branch taken");
	DEBUG_TRACE("start: var bound: base-value") ;
	machine.reg[RES] = getBoundVar (STACK_ENV(), 1, 1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var bound: base-value") ;
	goto If_Done_11545;
	If_Else_11544:
	DEBUG_NOTICE("branch not taken");
	DEBUG_TRACE("start: app tp: (binary-op (car s) ((vector-ref op-list 0) (cdr s)))") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: application: ((vector-ref op-list 0) (cdr s))") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: application: (cdr s)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: s") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: cdr") ;
	machine.reg[RES] = getSymbol("cdr") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: cdr") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_11540) ;
	ret_from_app_11540:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (cdr s)") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: application: (vector-ref op-list 0)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	machine.reg[RES] = makeSchemeInt(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var bound: op-list") ;
	machine.reg[RES] = getBoundVar (STACK_ENV(), 0, 0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var bound: op-list") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: vector-ref") ;
	machine.reg[RES] = getSymbol("vector-ref") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: vector-ref") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_11542) ;
	ret_from_app_11542:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (vector-ref op-list 0)") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_11541) ;
	ret_from_app_11541:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: ((vector-ref op-list 0) (cdr s))") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: application: (car s)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: s") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: car") ;
	machine.reg[RES] = getSymbol("car") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: car") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_11543) ;
	ret_from_app_11543:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (car s)") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: var bound: binary-op") ;
	machine.reg[RES] = getBoundVar (STACK_ENV(), 1, 0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var bound: binary-op") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 2 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	machine.stack[machine.fp+2] = machine.stack[machine.sp+1] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +3 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 2, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: (binary-op (car s) ((vector-ref op-list 0) (cdr s)))") ;
	If_Done_11545:

	DEBUG_TRACE("end: if: (if (null\? s) base-value (binary-op (car s) ((vector-ref op-list 0) (cdr s))))") ;
	FUNCTION_EXIT ("(lambda (s) (if (null\? s) base-value (binary-op (car s) ((vector-ref op-list 0) (cdr s)))))");
	Continue_11547:
	DEBUG_TRACE("end: lambda: (lambda (s) (if (null\? s) base-value (binary-op (car s) ((vector-ref op-list 0) (cdr s)))))") ;
	push((void*)machine.reg[RES]) ;
	machine.reg[RES] = makeSchemeInt(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: op-list") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: op-list") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: vector-set!") ;
	machine.reg[RES] = getSymbol("vector-set!") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: vector-set!") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 3, machine.reg[1], &&ret_from_app_11548) ;
	ret_from_app_11548:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (vector-set! op-list 0 (lambda (s) (if (null\? s) base-value (binary-op (car s) ((vector-ref op-list 0) (cdr s))))))") ;
	/* start new begin statement */
	DEBUG_TRACE("start: app tp: ((lambda () (lambda args ((vector-ref op-list 0) args))))") ;
	/* Start of Pushing args */
	/* End of Pushing args */
	DEBUG_TRACE("start: lambda: (lambda () (lambda args ((vector-ref op-list 0) args)))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_11555 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_11556;
	Closure_Code_11555:
	FUNCTION_ENTER("(lambda () (lambda args ((vector-ref op-list 0) args)))");
	RUNTIME_ASSERT(STACK_ARGC() == 0) ;
	DEBUG_TRACE("start: lambda opt: (lambda args ((vector-ref op-list 0) args))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[0]) ;
	machine.reg[1] = makeLocalEnv(STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[0] = extendEnv((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure(machine.reg[0], &&Closure_Code_11549) ;
	goto Continue_11550 ;
	Closure_Code_11549:
	FUNCTION_ENTER("(lambda args ((vector-ref op-list 0) args))") ;
	RUNTIME_ASSERT(STACK_ARGC() >= 0) ;
	push((void*)machine.reg[0]) ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	push((void*)machine.reg[3]) ;
	/* backups since shifting the frame changes argc */
	machine.reg[1] = (void*)STACK_ARGC() ;
	machine.reg[1] = (void*)((Amount)machine.reg[1] - 0) ; /* amount of optional args */
	machine.reg[3] = (void*)(STACK_FRAME_SIZE()+4) ;
	machine.reg[0] = stackToSchemeList(STACK_ARGS()-0, (Amount)machine.reg[1]) ;
	/* shift_frame_up */
	machine.reg[2] = (void*)(machine.sp) ; /* loop counter */
	shift_frame_up_loop_start_11552:
	if (!((Amount)machine.reg[2] >= machine.sp-(Amount)machine.reg[3]+1)) goto shift_frame_up_loop_end_11553 ;
	machine.stack[(Amount)machine.reg[2]] = machine.stack[(Amount)machine.reg[2]-1] ;
	machine.reg[2] = (void*)((Amount)machine.reg[2] - 1) ; /* step */
	goto shift_frame_up_loop_start_11552 ;
	shift_frame_up_loop_end_11553:
	machine.fp += 1 ;
	goto after_frame_shift_11551 ;
	after_frame_shift_11551:
	machine.sp = machine.fp+4 ;
	machine.stack[machine.fp-4] = machine.stack[machine.fp-4]+1 ; /* fix ARGC, basically, STACK_ARGC() -= ... */
	*(STACK_ARGS()-0) = machine.reg[0] ; /* fix last argument */
	machine.reg[3] = pop() ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("start: app tp: ((vector-ref op-list 0) args)") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: var param: args") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: args") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: application: (vector-ref op-list 0)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	machine.reg[RES] = makeSchemeInt(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var bound: op-list") ;
	machine.reg[RES] = getBoundVar (STACK_ENV(), 1, 0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var bound: op-list") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: vector-ref") ;
	machine.reg[RES] = getSymbol("vector-ref") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: vector-ref") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_11554) ;
	ret_from_app_11554:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (vector-ref op-list 0)") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 1 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +2 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 1, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: ((vector-ref op-list 0) args)") ;
	FUNCTION_EXIT("(lambda args ((vector-ref op-list 0) args))") ;
	Continue_11550:
	machine.reg[0] = pop() ;
	machine.reg[1] = pop() ;
	DEBUG_TRACE("end: lambda opt: (lambda args ((vector-ref op-list 0) args))") ;
	FUNCTION_EXIT ("(lambda () (lambda args ((vector-ref op-list 0) args)))");
	Continue_11556:
	DEBUG_TRACE("end: lambda: (lambda () (lambda args ((vector-ref op-list 0) args)))") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 0 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	/* End of overwriting old frame */
	machine.sp = machine.fp +1 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 0, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: ((lambda () (lambda args ((vector-ref op-list 0) args))))") ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: sequence: (begin (set! op-list (box op-list)) (vector-set! op-list 0 (lambda (s) (if (null\? s) base-value (binary-op (car s) ((vector-ref op-list 0) (cdr s)))))) ((lambda () (lambda args ((vector-ref op-list 0) args)))))") ;
	FUNCTION_EXIT ("(lambda (op-list) (begin (set! op-list (box op-list)) (vector-set! op-list 0 (lambda (s) (if (null\? s) base-value (binary-op (car s) ((vector-ref op-list 0) (cdr s)))))) ((lambda () (lambda args ((vector-ref op-list 0) args))))))");
	Continue_11558:
	DEBUG_TRACE("end: lambda: (lambda (op-list) (begin (set! op-list (box op-list)) (vector-set! op-list 0 (lambda (s) (if (null\? s) base-value (binary-op (car s) ((vector-ref op-list 0) (cdr s)))))) ((lambda () (lambda args ((vector-ref op-list 0) args))))))") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 1 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +2 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 1, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: ((lambda (op-list) (begin (set! op-list (box op-list)) (vector-set! op-list 0 (lambda (s) (if (null\? s) base-value (binary-op (car s) ((vector-ref op-list 0) (cdr s)))))) ((lambda () (lambda args ((vector-ref op-list 0) args)))))) #f)") ;
	FUNCTION_EXIT ("(lambda (binary-op base-value) ((lambda (op-list) (begin (set! op-list (box op-list)) (vector-set! op-list 0 (lambda (s) (if (null\? s) base-value (binary-op (car s) ((vector-ref op-list 0) (cdr s)))))) ((lambda () (lambda args ((vector-ref op-list 0) args)))))) #f))");
	Continue_11560:
	DEBUG_TRACE("end: lambda: (lambda (binary-op base-value) ((lambda (op-list) (begin (set! op-list (box op-list)) (vector-set! op-list 0 (lambda (s) (if (null\? s) base-value (binary-op (car s) ((vector-ref op-list 0) (cdr s)))))) ((lambda () (lambda args ((vector-ref op-list 0) args)))))) #f))") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("^variadic-right-from-binary") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define ^variadic-right-from-binary (lambda (binary-op base-value) ((lambda (op-list) (begin (set! op-list (box op-list)) (vector-set! op-list 0 (lambda (s) (if (null\? s) base-value (binary-op (car s) ((vector-ref op-list 0) (cdr s)))))) ((lambda () (lambda args ((vector-ref op-list 0) args)))))) #f)))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_11537:
	
	pushDummyFrame(&&exit_11561) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define ^variadic-left-from-binary (lambda (binary-op base-value) ((lambda (op-list) (begin (set! op-list (box op-list)) (vector-set! op-list 0 (lambda (acc s) (if (null\? s) acc ((vector-ref op-list 0) (binary-op acc (car s)) (cdr s))))) ((lambda () (lambda args (if (null\? args) base-value (if (= (length args) 1) (binary-op base-value (car args)) (or ((vector-ref op-list 0) (car args) (cdr args)) \'void)))))))) #f))) **********") ;
	DEBUG_TRACE("start: def: (define ^variadic-left-from-binary (lambda (binary-op base-value) ((lambda (op-list) (begin (set! op-list (box op-list)) (vector-set! op-list 0 (lambda (acc s) (if (null\? s) acc ((vector-ref op-list 0) (binary-op acc (car s)) (cdr s))))) ((lambda () (lambda args (if (null\? args) base-value (if (= (length args) 1) (binary-op base-value (car args)) (or ((vector-ref op-list 0) (car args) (cdr args)) \'void)))))))) #f)))") ;
	DEBUG_TRACE("start: lambda: (lambda (binary-op base-value) ((lambda (op-list) (begin (set! op-list (box op-list)) (vector-set! op-list 0 (lambda (acc s) (if (null\? s) acc ((vector-ref op-list 0) (binary-op acc (car s)) (cdr s))))) ((lambda () (lambda args (if (null\? args) base-value (if (= (length args) 1) (binary-op base-value (car args)) (or ((vector-ref op-list 0) (car args) (cdr args)) \'void)))))))) #f))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_11595 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_11596;
	Closure_Code_11595:
	FUNCTION_ENTER("(lambda (binary-op base-value) ((lambda (op-list) (begin (set! op-list (box op-list)) (vector-set! op-list 0 (lambda (acc s) (if (null\? s) acc ((vector-ref op-list 0) (binary-op acc (car s)) (cdr s))))) ((lambda () (lambda args (if (null\? args) base-value (if (= (length args) 1) (binary-op base-value (car args)) (or ((vector-ref op-list 0) (car args) (cdr args)) \'void)))))))) #f))");
	RUNTIME_ASSERT(STACK_ARGC() == 2) ;
	DEBUG_TRACE("start: app tp: ((lambda (op-list) (begin (set! op-list (box op-list)) (vector-set! op-list 0 (lambda (acc s) (if (null\? s) acc ((vector-ref op-list 0) (binary-op acc (car s)) (cdr s))))) ((lambda () (lambda args (if (null\? args) base-value (if (= (length args) 1) (binary-op base-value (car args)) (or ((vector-ref op-list 0) (car args) (cdr args)) \'void)))))))) #f)") ;
	/* Start of Pushing args */
	machine.reg[RES] = makeSchemeBool(FALSE);
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: lambda: (lambda (op-list) (begin (set! op-list (box op-list)) (vector-set! op-list 0 (lambda (acc s) (if (null\? s) acc ((vector-ref op-list 0) (binary-op acc (car s)) (cdr s))))) ((lambda () (lambda args (if (null\? args) base-value (if (= (length args) 1) (binary-op base-value (car args)) (or ((vector-ref op-list 0) (car args) (cdr args)) \'void))))))))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_11593 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_11594;
	Closure_Code_11593:
	FUNCTION_ENTER("(lambda (op-list) (begin (set! op-list (box op-list)) (vector-set! op-list 0 (lambda (acc s) (if (null\? s) acc ((vector-ref op-list 0) (binary-op acc (car s)) (cdr s))))) ((lambda () (lambda args (if (null\? args) base-value (if (= (length args) 1) (binary-op base-value (car args)) (or ((vector-ref op-list 0) (car args) (cdr args)) \'void))))))))");
	RUNTIME_ASSERT(STACK_ARGC() == 1) ;
	DEBUG_TRACE("start: sequence: (begin (set! op-list (box op-list)) (vector-set! op-list 0 (lambda (acc s) (if (null\? s) acc ((vector-ref op-list 0) (binary-op acc (car s)) (cdr s))))) ((lambda () (lambda args (if (null\? args) base-value (if (= (length args) 1) (binary-op base-value (car args)) (or ((vector-ref op-list 0) (car args) (cdr args)) \'void)))))))") ;
	/* start new begin statement */
	DEBUG_TRACE("start: set: (set! op-list (box op-list))") ;
	DEBUG_TRACE("start: application: (box op-list)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: op-list") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: op-list") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: box") ;
	machine.reg[RES] = getSymbol("box") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: box") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_11562) ;
	ret_from_app_11562:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (box op-list)") ;
	*(STACK_ARGS()-0) = machine.reg[RES] ;
	machine.reg[RES] = makeSchemeVoid() ;
	DEBUG_TRACE("end: set: (set! op-list (box op-list))") ;
	/* start new begin statement */
	DEBUG_TRACE("start: application: (vector-set! op-list 0 (lambda (acc s) (if (null\? s) acc ((vector-ref op-list 0) (binary-op acc (car s)) (cdr s)))))") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: lambda: (lambda (acc s) (if (null\? s) acc ((vector-ref op-list 0) (binary-op acc (car s)) (cdr s))))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_11570 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_11571;
	Closure_Code_11570:
	FUNCTION_ENTER("(lambda (acc s) (if (null\? s) acc ((vector-ref op-list 0) (binary-op acc (car s)) (cdr s))))");
	RUNTIME_ASSERT(STACK_ARGC() == 2) ;
	DEBUG_TRACE("start: if: (if (null\? s) acc ((vector-ref op-list 0) (binary-op acc (car s)) (cdr s)))") ;

	DEBUG_TRACE("start: application: (null\? s)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: s") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: null\?") ;
	machine.reg[RES] = getSymbol("null?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: null\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_11563) ;
	ret_from_app_11563:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (null\? s)") ;
	if (sobIsFalse(machine.reg[RES])) goto If_Else_11568;
	DEBUG_NOTICE("branch taken");
	DEBUG_TRACE("start: var param: acc") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: acc") ;
	goto If_Done_11569;
	If_Else_11568:
	DEBUG_NOTICE("branch not taken");
	DEBUG_TRACE("start: app tp: ((vector-ref op-list 0) (binary-op acc (car s)) (cdr s))") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: application: (cdr s)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: s") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: cdr") ;
	machine.reg[RES] = getSymbol("cdr") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: cdr") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_11564) ;
	ret_from_app_11564:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (cdr s)") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: application: (binary-op acc (car s))") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: application: (car s)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: s") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: car") ;
	machine.reg[RES] = getSymbol("car") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: car") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_11565) ;
	ret_from_app_11565:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (car s)") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: acc") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: acc") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var bound: binary-op") ;
	machine.reg[RES] = getBoundVar (STACK_ENV(), 1, 0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var bound: binary-op") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_11566) ;
	ret_from_app_11566:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (binary-op acc (car s))") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: application: (vector-ref op-list 0)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	machine.reg[RES] = makeSchemeInt(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var bound: op-list") ;
	machine.reg[RES] = getBoundVar (STACK_ENV(), 0, 0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var bound: op-list") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: vector-ref") ;
	machine.reg[RES] = getSymbol("vector-ref") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: vector-ref") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_11567) ;
	ret_from_app_11567:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (vector-ref op-list 0)") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 2 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	machine.stack[machine.fp+2] = machine.stack[machine.sp+1] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +3 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 2, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: ((vector-ref op-list 0) (binary-op acc (car s)) (cdr s))") ;
	If_Done_11569:

	DEBUG_TRACE("end: if: (if (null\? s) acc ((vector-ref op-list 0) (binary-op acc (car s)) (cdr s)))") ;
	FUNCTION_EXIT ("(lambda (acc s) (if (null\? s) acc ((vector-ref op-list 0) (binary-op acc (car s)) (cdr s))))");
	Continue_11571:
	DEBUG_TRACE("end: lambda: (lambda (acc s) (if (null\? s) acc ((vector-ref op-list 0) (binary-op acc (car s)) (cdr s))))") ;
	push((void*)machine.reg[RES]) ;
	machine.reg[RES] = makeSchemeInt(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: op-list") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: op-list") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: vector-set!") ;
	machine.reg[RES] = getSymbol("vector-set!") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: vector-set!") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 3, machine.reg[1], &&ret_from_app_11572) ;
	ret_from_app_11572:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (vector-set! op-list 0 (lambda (acc s) (if (null\? s) acc ((vector-ref op-list 0) (binary-op acc (car s)) (cdr s)))))") ;
	/* start new begin statement */
	DEBUG_TRACE("start: app tp: ((lambda () (lambda args (if (null\? args) base-value (if (= (length args) 1) (binary-op base-value (car args)) (or ((vector-ref op-list 0) (car args) (cdr args)) \'void))))))") ;
	/* Start of Pushing args */
	/* End of Pushing args */
	DEBUG_TRACE("start: lambda: (lambda () (lambda args (if (null\? args) base-value (if (= (length args) 1) (binary-op base-value (car args)) (or ((vector-ref op-list 0) (car args) (cdr args)) \'void)))))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_11591 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_11592;
	Closure_Code_11591:
	FUNCTION_ENTER("(lambda () (lambda args (if (null\? args) base-value (if (= (length args) 1) (binary-op base-value (car args)) (or ((vector-ref op-list 0) (car args) (cdr args)) \'void)))))");
	RUNTIME_ASSERT(STACK_ARGC() == 0) ;
	DEBUG_TRACE("start: lambda opt: (lambda args (if (null\? args) base-value (if (= (length args) 1) (binary-op base-value (car args)) (or ((vector-ref op-list 0) (car args) (cdr args)) \'void))))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[0]) ;
	machine.reg[1] = makeLocalEnv(STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[0] = extendEnv((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure(machine.reg[0], &&Closure_Code_11573) ;
	goto Continue_11574 ;
	Closure_Code_11573:
	FUNCTION_ENTER("(lambda args (if (null\? args) base-value (if (= (length args) 1) (binary-op base-value (car args)) (or ((vector-ref op-list 0) (car args) (cdr args)) \'void))))") ;
	RUNTIME_ASSERT(STACK_ARGC() >= 0) ;
	push((void*)machine.reg[0]) ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	push((void*)machine.reg[3]) ;
	/* backups since shifting the frame changes argc */
	machine.reg[1] = (void*)STACK_ARGC() ;
	machine.reg[1] = (void*)((Amount)machine.reg[1] - 0) ; /* amount of optional args */
	machine.reg[3] = (void*)(STACK_FRAME_SIZE()+4) ;
	machine.reg[0] = stackToSchemeList(STACK_ARGS()-0, (Amount)machine.reg[1]) ;
	/* shift_frame_up */
	machine.reg[2] = (void*)(machine.sp) ; /* loop counter */
	shift_frame_up_loop_start_11576:
	if (!((Amount)machine.reg[2] >= machine.sp-(Amount)machine.reg[3]+1)) goto shift_frame_up_loop_end_11577 ;
	machine.stack[(Amount)machine.reg[2]] = machine.stack[(Amount)machine.reg[2]-1] ;
	machine.reg[2] = (void*)((Amount)machine.reg[2] - 1) ; /* step */
	goto shift_frame_up_loop_start_11576 ;
	shift_frame_up_loop_end_11577:
	machine.fp += 1 ;
	goto after_frame_shift_11575 ;
	after_frame_shift_11575:
	machine.sp = machine.fp+4 ;
	machine.stack[machine.fp-4] = machine.stack[machine.fp-4]+1 ; /* fix ARGC, basically, STACK_ARGC() -= ... */
	*(STACK_ARGS()-0) = machine.reg[0] ; /* fix last argument */
	machine.reg[3] = pop() ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("start: if: (if (null\? args) base-value (if (= (length args) 1) (binary-op base-value (car args)) (or ((vector-ref op-list 0) (car args) (cdr args)) \'void)))") ;

	DEBUG_TRACE("start: application: (null\? args)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: args") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: args") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: null\?") ;
	machine.reg[RES] = getSymbol("null?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: null\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_11578) ;
	ret_from_app_11578:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (null\? args)") ;
	if (sobIsFalse(machine.reg[RES])) goto If_Else_11589;
	DEBUG_NOTICE("branch taken");
	DEBUG_TRACE("start: var bound: base-value") ;
	machine.reg[RES] = getBoundVar (STACK_ENV(), 2, 1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var bound: base-value") ;
	goto If_Done_11590;
	If_Else_11589:
	DEBUG_NOTICE("branch not taken");
	DEBUG_TRACE("start: if: (if (= (length args) 1) (binary-op base-value (car args)) (or ((vector-ref op-list 0) (car args) (cdr args)) \'void))") ;

	DEBUG_TRACE("start: application: (= (length args) 1)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	machine.reg[RES] = makeSchemeInt(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: application: (length args)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: args") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: args") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: length") ;
	machine.reg[RES] = getSymbol("length") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: length") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_11579) ;
	ret_from_app_11579:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (length args)") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: =") ;
	machine.reg[RES] = getSymbol("=") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: =") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_11580) ;
	ret_from_app_11580:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (= (length args) 1)") ;
	if (sobIsFalse(machine.reg[RES])) goto If_Else_11587;
	DEBUG_NOTICE("branch taken");
	DEBUG_TRACE("start: app tp: (binary-op base-value (car args))") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: application: (car args)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: args") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: args") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: car") ;
	machine.reg[RES] = getSymbol("car") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: car") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_11581) ;
	ret_from_app_11581:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (car args)") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var bound: base-value") ;
	machine.reg[RES] = getBoundVar (STACK_ENV(), 2, 1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var bound: base-value") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: var bound: binary-op") ;
	machine.reg[RES] = getBoundVar (STACK_ENV(), 2, 0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var bound: binary-op") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 2 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	machine.stack[machine.fp+2] = machine.stack[machine.sp+1] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +3 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 2, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: (binary-op base-value (car args))") ;
	goto If_Done_11588;
	If_Else_11587:
	DEBUG_NOTICE("branch not taken");
	DEBUG_TRACE("start: or: (or ((vector-ref op-list 0) (car args) (cdr args)) \'void)") ;
	DEBUG_TRACE("start: application: ((vector-ref op-list 0) (car args) (cdr args))") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: application: (cdr args)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: args") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: args") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: cdr") ;
	machine.reg[RES] = getSymbol("cdr") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: cdr") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_11583) ;
	ret_from_app_11583:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (cdr args)") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: application: (car args)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: args") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: args") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: car") ;
	machine.reg[RES] = getSymbol("car") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: car") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_11584) ;
	ret_from_app_11584:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (car args)") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: application: (vector-ref op-list 0)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	machine.reg[RES] = makeSchemeInt(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var bound: op-list") ;
	machine.reg[RES] = getBoundVar (STACK_ENV(), 1, 0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var bound: op-list") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: vector-ref") ;
	machine.reg[RES] = getSymbol("vector-ref") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: vector-ref") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_11586) ;
	ret_from_app_11586:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (vector-ref op-list 0)") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_11585) ;
	ret_from_app_11585:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: ((vector-ref op-list 0) (car args) (cdr args))") ;
	if (sobIsntFalse(machine.reg[RES])) goto or_end_11582 ; /* end the 'or' if true */
	machine.reg[RES] = schemeVoid ;
	or_end_11582:
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: or: (or ((vector-ref op-list 0) (car args) (cdr args)) \'void)") ;
	If_Done_11588:

	DEBUG_TRACE("end: if: (if (= (length args) 1) (binary-op base-value (car args)) (or ((vector-ref op-list 0) (car args) (cdr args)) \'void))") ;
	If_Done_11590:

	DEBUG_TRACE("end: if: (if (null\? args) base-value (if (= (length args) 1) (binary-op base-value (car args)) (or ((vector-ref op-list 0) (car args) (cdr args)) \'void)))") ;
	FUNCTION_EXIT("(lambda args (if (null\? args) base-value (if (= (length args) 1) (binary-op base-value (car args)) (or ((vector-ref op-list 0) (car args) (cdr args)) \'void))))") ;
	Continue_11574:
	machine.reg[0] = pop() ;
	machine.reg[1] = pop() ;
	DEBUG_TRACE("end: lambda opt: (lambda args (if (null\? args) base-value (if (= (length args) 1) (binary-op base-value (car args)) (or ((vector-ref op-list 0) (car args) (cdr args)) \'void))))") ;
	FUNCTION_EXIT ("(lambda () (lambda args (if (null\? args) base-value (if (= (length args) 1) (binary-op base-value (car args)) (or ((vector-ref op-list 0) (car args) (cdr args)) \'void)))))");
	Continue_11592:
	DEBUG_TRACE("end: lambda: (lambda () (lambda args (if (null\? args) base-value (if (= (length args) 1) (binary-op base-value (car args)) (or ((vector-ref op-list 0) (car args) (cdr args)) \'void)))))") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 0 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	/* End of overwriting old frame */
	machine.sp = machine.fp +1 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 0, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: ((lambda () (lambda args (if (null\? args) base-value (if (= (length args) 1) (binary-op base-value (car args)) (or ((vector-ref op-list 0) (car args) (cdr args)) \'void))))))") ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: sequence: (begin (set! op-list (box op-list)) (vector-set! op-list 0 (lambda (acc s) (if (null\? s) acc ((vector-ref op-list 0) (binary-op acc (car s)) (cdr s))))) ((lambda () (lambda args (if (null\? args) base-value (if (= (length args) 1) (binary-op base-value (car args)) (or ((vector-ref op-list 0) (car args) (cdr args)) \'void)))))))") ;
	FUNCTION_EXIT ("(lambda (op-list) (begin (set! op-list (box op-list)) (vector-set! op-list 0 (lambda (acc s) (if (null\? s) acc ((vector-ref op-list 0) (binary-op acc (car s)) (cdr s))))) ((lambda () (lambda args (if (null\? args) base-value (if (= (length args) 1) (binary-op base-value (car args)) (or ((vector-ref op-list 0) (car args) (cdr args)) \'void))))))))");
	Continue_11594:
	DEBUG_TRACE("end: lambda: (lambda (op-list) (begin (set! op-list (box op-list)) (vector-set! op-list 0 (lambda (acc s) (if (null\? s) acc ((vector-ref op-list 0) (binary-op acc (car s)) (cdr s))))) ((lambda () (lambda args (if (null\? args) base-value (if (= (length args) 1) (binary-op base-value (car args)) (or ((vector-ref op-list 0) (car args) (cdr args)) \'void))))))))") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 1 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +2 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 1, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: ((lambda (op-list) (begin (set! op-list (box op-list)) (vector-set! op-list 0 (lambda (acc s) (if (null\? s) acc ((vector-ref op-list 0) (binary-op acc (car s)) (cdr s))))) ((lambda () (lambda args (if (null\? args) base-value (if (= (length args) 1) (binary-op base-value (car args)) (or ((vector-ref op-list 0) (car args) (cdr args)) \'void)))))))) #f)") ;
	FUNCTION_EXIT ("(lambda (binary-op base-value) ((lambda (op-list) (begin (set! op-list (box op-list)) (vector-set! op-list 0 (lambda (acc s) (if (null\? s) acc ((vector-ref op-list 0) (binary-op acc (car s)) (cdr s))))) ((lambda () (lambda args (if (null\? args) base-value (if (= (length args) 1) (binary-op base-value (car args)) (or ((vector-ref op-list 0) (car args) (cdr args)) \'void)))))))) #f))");
	Continue_11596:
	DEBUG_TRACE("end: lambda: (lambda (binary-op base-value) ((lambda (op-list) (begin (set! op-list (box op-list)) (vector-set! op-list 0 (lambda (acc s) (if (null\? s) acc ((vector-ref op-list 0) (binary-op acc (car s)) (cdr s))))) ((lambda () (lambda args (if (null\? args) base-value (if (= (length args) 1) (binary-op base-value (car args)) (or ((vector-ref op-list 0) (car args) (cdr args)) \'void)))))))) #f))") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("^variadic-left-from-binary") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define ^variadic-left-from-binary (lambda (binary-op base-value) ((lambda (op-list) (begin (set! op-list (box op-list)) (vector-set! op-list 0 (lambda (acc s) (if (null\? s) acc ((vector-ref op-list 0) (binary-op acc (car s)) (cdr s))))) ((lambda () (lambda args (if (null\? args) base-value (if (= (length args) 1) (binary-op base-value (car args)) (or ((vector-ref op-list 0) (car args) (cdr args)) \'void)))))))) #f)))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_11561:
	
	pushDummyFrame(&&exit_11597) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define + (^variadic-right-from-binary binary-add 0)) **********") ;
	DEBUG_TRACE("start: def: (define + (^variadic-right-from-binary binary-add 0))") ;
	DEBUG_TRACE("start: application: (^variadic-right-from-binary binary-add 0)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	machine.reg[RES] = makeSchemeInt(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var free: binary-add") ;
	machine.reg[RES] = getSymbol("binary-add") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: binary-add") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: ^variadic-right-from-binary") ;
	machine.reg[RES] = getSymbol("^variadic-right-from-binary") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: ^variadic-right-from-binary") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_11598) ;
	ret_from_app_11598:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (^variadic-right-from-binary binary-add 0)") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("+") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define + (^variadic-right-from-binary binary-add 0))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_11597:
	
	pushDummyFrame(&&exit_11599) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define * (^variadic-right-from-binary binary-mul 1)) **********") ;
	DEBUG_TRACE("start: def: (define * (^variadic-right-from-binary binary-mul 1))") ;
	DEBUG_TRACE("start: application: (^variadic-right-from-binary binary-mul 1)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	machine.reg[RES] = makeSchemeInt(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var free: binary-mul") ;
	machine.reg[RES] = getSymbol("binary-mul") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: binary-mul") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: ^variadic-right-from-binary") ;
	machine.reg[RES] = getSymbol("^variadic-right-from-binary") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: ^variadic-right-from-binary") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_11600) ;
	ret_from_app_11600:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (^variadic-right-from-binary binary-mul 1)") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("*") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define * (^variadic-right-from-binary binary-mul 1))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_11599:
	
	pushDummyFrame(&&exit_11601) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define - (^variadic-left-from-binary binary-sub 0)) **********") ;
	DEBUG_TRACE("start: def: (define - (^variadic-left-from-binary binary-sub 0))") ;
	DEBUG_TRACE("start: application: (^variadic-left-from-binary binary-sub 0)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	machine.reg[RES] = makeSchemeInt(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var free: binary-sub") ;
	machine.reg[RES] = getSymbol("binary-sub") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: binary-sub") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: ^variadic-left-from-binary") ;
	machine.reg[RES] = getSymbol("^variadic-left-from-binary") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: ^variadic-left-from-binary") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_11602) ;
	ret_from_app_11602:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (^variadic-left-from-binary binary-sub 0)") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("-") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define - (^variadic-left-from-binary binary-sub 0))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_11601:
	
	pushDummyFrame(&&exit_11603) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define / (^variadic-left-from-binary binary-div 1)) **********") ;
	DEBUG_TRACE("start: def: (define / (^variadic-left-from-binary binary-div 1))") ;
	DEBUG_TRACE("start: application: (^variadic-left-from-binary binary-div 1)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	machine.reg[RES] = makeSchemeInt(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var free: binary-div") ;
	machine.reg[RES] = getSymbol("binary-div") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: binary-div") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: ^variadic-left-from-binary") ;
	machine.reg[RES] = getSymbol("^variadic-left-from-binary") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: ^variadic-left-from-binary") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_11604) ;
	ret_from_app_11604:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (^variadic-left-from-binary binary-div 1)") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("/") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define / (^variadic-left-from-binary binary-div 1))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_11603:
	
	pushDummyFrame(&&exit_11605) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define ^char-op (lambda (int-op) (lambda (ch1 ch2) (int-op (char->integer ch1) (char->integer ch2))))) **********") ;
	DEBUG_TRACE("start: def: (define ^char-op (lambda (int-op) (lambda (ch1 ch2) (int-op (char->integer ch1) (char->integer ch2)))))") ;
	DEBUG_TRACE("start: lambda: (lambda (int-op) (lambda (ch1 ch2) (int-op (char->integer ch1) (char->integer ch2))))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_11610 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_11611;
	Closure_Code_11610:
	FUNCTION_ENTER("(lambda (int-op) (lambda (ch1 ch2) (int-op (char->integer ch1) (char->integer ch2))))");
	RUNTIME_ASSERT(STACK_ARGC() == 1) ;
	DEBUG_TRACE("start: lambda: (lambda (ch1 ch2) (int-op (char->integer ch1) (char->integer ch2)))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_11608 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_11609;
	Closure_Code_11608:
	FUNCTION_ENTER("(lambda (ch1 ch2) (int-op (char->integer ch1) (char->integer ch2)))");
	RUNTIME_ASSERT(STACK_ARGC() == 2) ;
	DEBUG_TRACE("start: app tp: (int-op (char->integer ch1) (char->integer ch2))") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: application: (char->integer ch2)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: ch2") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: ch2") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: char->integer") ;
	machine.reg[RES] = getSymbol("char->integer") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: char->integer") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_11606) ;
	ret_from_app_11606:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (char->integer ch2)") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: application: (char->integer ch1)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: ch1") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: ch1") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: char->integer") ;
	machine.reg[RES] = getSymbol("char->integer") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: char->integer") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_11607) ;
	ret_from_app_11607:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (char->integer ch1)") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: var bound: int-op") ;
	machine.reg[RES] = getBoundVar (STACK_ENV(), 0, 0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var bound: int-op") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 2 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	machine.stack[machine.fp+2] = machine.stack[machine.sp+1] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +3 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 2, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: (int-op (char->integer ch1) (char->integer ch2))") ;
	FUNCTION_EXIT ("(lambda (ch1 ch2) (int-op (char->integer ch1) (char->integer ch2)))");
	Continue_11609:
	DEBUG_TRACE("end: lambda: (lambda (ch1 ch2) (int-op (char->integer ch1) (char->integer ch2)))") ;
	FUNCTION_EXIT ("(lambda (int-op) (lambda (ch1 ch2) (int-op (char->integer ch1) (char->integer ch2))))");
	Continue_11611:
	DEBUG_TRACE("end: lambda: (lambda (int-op) (lambda (ch1 ch2) (int-op (char->integer ch1) (char->integer ch2))))") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("^char-op") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define ^char-op (lambda (int-op) (lambda (ch1 ch2) (int-op (char->integer ch1) (char->integer ch2)))))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_11605:
	
	pushDummyFrame(&&exit_11612) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define char=\? (lambda (chr1 chr2) (= (char->integer chr1) (char->integer chr2)))) **********") ;
	DEBUG_TRACE("start: def: (define char=\? (lambda (chr1 chr2) (= (char->integer chr1) (char->integer chr2))))") ;
	DEBUG_TRACE("start: lambda: (lambda (chr1 chr2) (= (char->integer chr1) (char->integer chr2)))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_11615 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_11616;
	Closure_Code_11615:
	FUNCTION_ENTER("(lambda (chr1 chr2) (= (char->integer chr1) (char->integer chr2)))");
	RUNTIME_ASSERT(STACK_ARGC() == 2) ;
	DEBUG_TRACE("start: app tp: (= (char->integer chr1) (char->integer chr2))") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: application: (char->integer chr2)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: chr2") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: chr2") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: char->integer") ;
	machine.reg[RES] = getSymbol("char->integer") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: char->integer") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_11613) ;
	ret_from_app_11613:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (char->integer chr2)") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: application: (char->integer chr1)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: chr1") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: chr1") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: char->integer") ;
	machine.reg[RES] = getSymbol("char->integer") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: char->integer") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_11614) ;
	ret_from_app_11614:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (char->integer chr1)") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: var free: =") ;
	machine.reg[RES] = getSymbol("=") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: =") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 2 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	machine.stack[machine.fp+2] = machine.stack[machine.sp+1] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +3 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 2, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: (= (char->integer chr1) (char->integer chr2))") ;
	FUNCTION_EXIT ("(lambda (chr1 chr2) (= (char->integer chr1) (char->integer chr2)))");
	Continue_11616:
	DEBUG_TRACE("end: lambda: (lambda (chr1 chr2) (= (char->integer chr1) (char->integer chr2)))") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("char=\?") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define char=\? (lambda (chr1 chr2) (= (char->integer chr1) (char->integer chr2))))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_11612:
	
	pushDummyFrame(&&exit_11617) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define char<=\? (order (^char-op <=))) **********") ;
	DEBUG_TRACE("start: def: (define char<=\? (order (^char-op <=)))") ;
	DEBUG_TRACE("start: application: (order (^char-op <=))") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: application: (^char-op <=)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var free: <=") ;
	machine.reg[RES] = getSymbol("<=") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: <=") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: ^char-op") ;
	machine.reg[RES] = getSymbol("^char-op") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: ^char-op") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_11618) ;
	ret_from_app_11618:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (^char-op <=)") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: order") ;
	machine.reg[RES] = getSymbol("order") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: order") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_11619) ;
	ret_from_app_11619:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (order (^char-op <=))") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("char<=\?") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define char<=\? (order (^char-op <=)))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_11617:
	
	pushDummyFrame(&&exit_11620) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define char<\? (order (^char-op <))) **********") ;
	DEBUG_TRACE("start: def: (define char<\? (order (^char-op <)))") ;
	DEBUG_TRACE("start: application: (order (^char-op <))") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: application: (^char-op <)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var free: <") ;
	machine.reg[RES] = getSymbol("<") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: <") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: ^char-op") ;
	machine.reg[RES] = getSymbol("^char-op") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: ^char-op") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_11621) ;
	ret_from_app_11621:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (^char-op <)") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: order") ;
	machine.reg[RES] = getSymbol("order") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: order") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_11622) ;
	ret_from_app_11622:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (order (^char-op <))") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("char<\?") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define char<\? (order (^char-op <)))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_11620:
	
	pushDummyFrame(&&exit_11623) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define char>=\? (order (^char-op >=))) **********") ;
	DEBUG_TRACE("start: def: (define char>=\? (order (^char-op >=)))") ;
	DEBUG_TRACE("start: application: (order (^char-op >=))") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: application: (^char-op >=)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var free: >=") ;
	machine.reg[RES] = getSymbol(">=") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: >=") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: ^char-op") ;
	machine.reg[RES] = getSymbol("^char-op") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: ^char-op") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_11624) ;
	ret_from_app_11624:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (^char-op >=)") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: order") ;
	machine.reg[RES] = getSymbol("order") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: order") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_11625) ;
	ret_from_app_11625:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (order (^char-op >=))") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("char>=\?") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define char>=\? (order (^char-op >=)))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_11623:
	
	pushDummyFrame(&&exit_11626) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define char>\? (order (^char-op >))) **********") ;
	DEBUG_TRACE("start: def: (define char>\? (order (^char-op >)))") ;
	DEBUG_TRACE("start: application: (order (^char-op >))") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: application: (^char-op >)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var free: >") ;
	machine.reg[RES] = getSymbol(">") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: >") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: ^char-op") ;
	machine.reg[RES] = getSymbol("^char-op") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: ^char-op") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_11627) ;
	ret_from_app_11627:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (^char-op >)") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: order") ;
	machine.reg[RES] = getSymbol("order") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: order") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_11628) ;
	ret_from_app_11628:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (order (^char-op >))") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("char>\?") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define char>\? (order (^char-op >)))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_11626:
	
	pushDummyFrame(&&exit_11629) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define char-uppercase\? (lambda (ch) (if (char<=\? #\\A ch) (char<=\? ch #\\Z) #f))) **********") ;
	DEBUG_TRACE("start: def: (define char-uppercase\? (lambda (ch) (if (char<=\? #\\A ch) (char<=\? ch #\\Z) #f)))") ;
	DEBUG_TRACE("start: lambda: (lambda (ch) (if (char<=\? #\\A ch) (char<=\? ch #\\Z) #f))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_11633 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_11634;
	Closure_Code_11633:
	FUNCTION_ENTER("(lambda (ch) (if (char<=\? #\\A ch) (char<=\? ch #\\Z) #f))");
	RUNTIME_ASSERT(STACK_ARGC() == 1) ;
	DEBUG_TRACE("start: if: (if (char<=\? #\\A ch) (char<=\? ch #\\Z) #f)") ;

	DEBUG_TRACE("start: application: (char<=\? #\\A ch)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: ch") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: ch") ;
	push((void*)machine.reg[RES]) ;
	machine.reg[RES] = makeSchemeChar('A') ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: char<=\?") ;
	machine.reg[RES] = getSymbol("char<=?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: char<=\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_11630) ;
	ret_from_app_11630:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (char<=\? #\\A ch)") ;
	if (sobIsFalse(machine.reg[RES])) goto If_Else_11631;
	DEBUG_NOTICE("branch taken");
	DEBUG_TRACE("start: app tp: (char<=\? ch #\\Z)") ;
	/* Start of Pushing args */
	machine.reg[RES] = makeSchemeChar('Z') ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: ch") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: ch") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: var free: char<=\?") ;
	machine.reg[RES] = getSymbol("char<=?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: char<=\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 2 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	machine.stack[machine.fp+2] = machine.stack[machine.sp+1] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +3 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 2, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: (char<=\? ch #\\Z)") ;
	goto If_Done_11632;
	If_Else_11631:
	DEBUG_NOTICE("branch not taken");
	machine.reg[RES] = makeSchemeBool(FALSE);
	If_Done_11632:

	DEBUG_TRACE("end: if: (if (char<=\? #\\A ch) (char<=\? ch #\\Z) #f)") ;
	FUNCTION_EXIT ("(lambda (ch) (if (char<=\? #\\A ch) (char<=\? ch #\\Z) #f))");
	Continue_11634:
	DEBUG_TRACE("end: lambda: (lambda (ch) (if (char<=\? #\\A ch) (char<=\? ch #\\Z) #f))") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("char-uppercase\?") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define char-uppercase\? (lambda (ch) (if (char<=\? #\\A ch) (char<=\? ch #\\Z) #f)))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_11629:
	
	pushDummyFrame(&&exit_11635) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define char-lowercase\? (lambda (ch) (if (char<=\? #\\a ch) (char<=\? ch #\\z) #f))) **********") ;
	DEBUG_TRACE("start: def: (define char-lowercase\? (lambda (ch) (if (char<=\? #\\a ch) (char<=\? ch #\\z) #f)))") ;
	DEBUG_TRACE("start: lambda: (lambda (ch) (if (char<=\? #\\a ch) (char<=\? ch #\\z) #f))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_11639 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_11640;
	Closure_Code_11639:
	FUNCTION_ENTER("(lambda (ch) (if (char<=\? #\\a ch) (char<=\? ch #\\z) #f))");
	RUNTIME_ASSERT(STACK_ARGC() == 1) ;
	DEBUG_TRACE("start: if: (if (char<=\? #\\a ch) (char<=\? ch #\\z) #f)") ;

	DEBUG_TRACE("start: application: (char<=\? #\\a ch)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: ch") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: ch") ;
	push((void*)machine.reg[RES]) ;
	machine.reg[RES] = makeSchemeChar('a') ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: char<=\?") ;
	machine.reg[RES] = getSymbol("char<=?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: char<=\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_11636) ;
	ret_from_app_11636:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (char<=\? #\\a ch)") ;
	if (sobIsFalse(machine.reg[RES])) goto If_Else_11637;
	DEBUG_NOTICE("branch taken");
	DEBUG_TRACE("start: app tp: (char<=\? ch #\\z)") ;
	/* Start of Pushing args */
	machine.reg[RES] = makeSchemeChar('z') ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: ch") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: ch") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: var free: char<=\?") ;
	machine.reg[RES] = getSymbol("char<=?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: char<=\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 2 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	machine.stack[machine.fp+2] = machine.stack[machine.sp+1] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +3 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 2, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: (char<=\? ch #\\z)") ;
	goto If_Done_11638;
	If_Else_11637:
	DEBUG_NOTICE("branch not taken");
	machine.reg[RES] = makeSchemeBool(FALSE);
	If_Done_11638:

	DEBUG_TRACE("end: if: (if (char<=\? #\\a ch) (char<=\? ch #\\z) #f)") ;
	FUNCTION_EXIT ("(lambda (ch) (if (char<=\? #\\a ch) (char<=\? ch #\\z) #f))");
	Continue_11640:
	DEBUG_TRACE("end: lambda: (lambda (ch) (if (char<=\? #\\a ch) (char<=\? ch #\\z) #f))") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("char-lowercase\?") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define char-lowercase\? (lambda (ch) (if (char<=\? #\\a ch) (char<=\? ch #\\z) #f)))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_11635:
	
	pushDummyFrame(&&exit_11641) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define char-upcase ((lambda (char-aA) (lambda (ch) (if (char-lowercase\? ch) (integer->char (- (char->integer ch) char-aA)) ch))) (- (char->integer #\\a) (char->integer #\\A)))) **********") ;
	DEBUG_TRACE("start: def: (define char-upcase ((lambda (char-aA) (lambda (ch) (if (char-lowercase\? ch) (integer->char (- (char->integer ch) char-aA)) ch))) (- (char->integer #\\a) (char->integer #\\A))))") ;
	DEBUG_TRACE("start: application: ((lambda (char-aA) (lambda (ch) (if (char-lowercase\? ch) (integer->char (- (char->integer ch) char-aA)) ch))) (- (char->integer #\\a) (char->integer #\\A)))") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: application: (- (char->integer #\\a) (char->integer #\\A))") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: application: (char->integer #\\A)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	machine.reg[RES] = makeSchemeChar('A') ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: char->integer") ;
	machine.reg[RES] = getSymbol("char->integer") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: char->integer") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_11642) ;
	ret_from_app_11642:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (char->integer #\\A)") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: application: (char->integer #\\a)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	machine.reg[RES] = makeSchemeChar('a') ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: char->integer") ;
	machine.reg[RES] = getSymbol("char->integer") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: char->integer") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_11643) ;
	ret_from_app_11643:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (char->integer #\\a)") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: -") ;
	machine.reg[RES] = getSymbol("-") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: -") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_11644) ;
	ret_from_app_11644:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (- (char->integer #\\a) (char->integer #\\A))") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: lambda: (lambda (char-aA) (lambda (ch) (if (char-lowercase\? ch) (integer->char (- (char->integer ch) char-aA)) ch)))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_11653 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_11654;
	Closure_Code_11653:
	FUNCTION_ENTER("(lambda (char-aA) (lambda (ch) (if (char-lowercase\? ch) (integer->char (- (char->integer ch) char-aA)) ch)))");
	RUNTIME_ASSERT(STACK_ARGC() == 1) ;
	DEBUG_TRACE("start: lambda: (lambda (ch) (if (char-lowercase\? ch) (integer->char (- (char->integer ch) char-aA)) ch))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_11651 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_11652;
	Closure_Code_11651:
	FUNCTION_ENTER("(lambda (ch) (if (char-lowercase\? ch) (integer->char (- (char->integer ch) char-aA)) ch))");
	RUNTIME_ASSERT(STACK_ARGC() == 1) ;
	DEBUG_TRACE("start: if: (if (char-lowercase\? ch) (integer->char (- (char->integer ch) char-aA)) ch)") ;

	DEBUG_TRACE("start: application: (char-lowercase\? ch)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: ch") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: ch") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: char-lowercase\?") ;
	machine.reg[RES] = getSymbol("char-lowercase?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: char-lowercase\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_11646) ;
	ret_from_app_11646:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (char-lowercase\? ch)") ;
	if (sobIsFalse(machine.reg[RES])) goto If_Else_11649;
	DEBUG_NOTICE("branch taken");
	DEBUG_TRACE("start: app tp: (integer->char (- (char->integer ch) char-aA))") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: application: (- (char->integer ch) char-aA)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var bound: char-aA") ;
	machine.reg[RES] = getBoundVar (STACK_ENV(), 0, 0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var bound: char-aA") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: application: (char->integer ch)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: ch") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: ch") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: char->integer") ;
	machine.reg[RES] = getSymbol("char->integer") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: char->integer") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_11647) ;
	ret_from_app_11647:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (char->integer ch)") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: -") ;
	machine.reg[RES] = getSymbol("-") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: -") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_11648) ;
	ret_from_app_11648:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (- (char->integer ch) char-aA)") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: var free: integer->char") ;
	machine.reg[RES] = getSymbol("integer->char") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: integer->char") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 1 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +2 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 1, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: (integer->char (- (char->integer ch) char-aA))") ;
	goto If_Done_11650;
	If_Else_11649:
	DEBUG_NOTICE("branch not taken");
	DEBUG_TRACE("start: var param: ch") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: ch") ;
	If_Done_11650:

	DEBUG_TRACE("end: if: (if (char-lowercase\? ch) (integer->char (- (char->integer ch) char-aA)) ch)") ;
	FUNCTION_EXIT ("(lambda (ch) (if (char-lowercase\? ch) (integer->char (- (char->integer ch) char-aA)) ch))");
	Continue_11652:
	DEBUG_TRACE("end: lambda: (lambda (ch) (if (char-lowercase\? ch) (integer->char (- (char->integer ch) char-aA)) ch))") ;
	FUNCTION_EXIT ("(lambda (char-aA) (lambda (ch) (if (char-lowercase\? ch) (integer->char (- (char->integer ch) char-aA)) ch)))");
	Continue_11654:
	DEBUG_TRACE("end: lambda: (lambda (char-aA) (lambda (ch) (if (char-lowercase\? ch) (integer->char (- (char->integer ch) char-aA)) ch)))") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_11645) ;
	ret_from_app_11645:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: ((lambda (char-aA) (lambda (ch) (if (char-lowercase\? ch) (integer->char (- (char->integer ch) char-aA)) ch))) (- (char->integer #\\a) (char->integer #\\A)))") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("char-upcase") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define char-upcase ((lambda (char-aA) (lambda (ch) (if (char-lowercase\? ch) (integer->char (- (char->integer ch) char-aA)) ch))) (- (char->integer #\\a) (char->integer #\\A))))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_11641:
	
	pushDummyFrame(&&exit_11655) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define char-downcase ((lambda (char-aA) (lambda (ch) (if (char-uppercase\? ch) (integer->char (+ (char->integer ch) char-aA)) ch))) (- (char->integer #\\a) (char->integer #\\A)))) **********") ;
	DEBUG_TRACE("start: def: (define char-downcase ((lambda (char-aA) (lambda (ch) (if (char-uppercase\? ch) (integer->char (+ (char->integer ch) char-aA)) ch))) (- (char->integer #\\a) (char->integer #\\A))))") ;
	DEBUG_TRACE("start: application: ((lambda (char-aA) (lambda (ch) (if (char-uppercase\? ch) (integer->char (+ (char->integer ch) char-aA)) ch))) (- (char->integer #\\a) (char->integer #\\A)))") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: application: (- (char->integer #\\a) (char->integer #\\A))") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: application: (char->integer #\\A)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	machine.reg[RES] = makeSchemeChar('A') ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: char->integer") ;
	machine.reg[RES] = getSymbol("char->integer") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: char->integer") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_11656) ;
	ret_from_app_11656:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (char->integer #\\A)") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: application: (char->integer #\\a)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	machine.reg[RES] = makeSchemeChar('a') ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: char->integer") ;
	machine.reg[RES] = getSymbol("char->integer") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: char->integer") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_11657) ;
	ret_from_app_11657:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (char->integer #\\a)") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: -") ;
	machine.reg[RES] = getSymbol("-") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: -") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_11658) ;
	ret_from_app_11658:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (- (char->integer #\\a) (char->integer #\\A))") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: lambda: (lambda (char-aA) (lambda (ch) (if (char-uppercase\? ch) (integer->char (+ (char->integer ch) char-aA)) ch)))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_11667 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_11668;
	Closure_Code_11667:
	FUNCTION_ENTER("(lambda (char-aA) (lambda (ch) (if (char-uppercase\? ch) (integer->char (+ (char->integer ch) char-aA)) ch)))");
	RUNTIME_ASSERT(STACK_ARGC() == 1) ;
	DEBUG_TRACE("start: lambda: (lambda (ch) (if (char-uppercase\? ch) (integer->char (+ (char->integer ch) char-aA)) ch))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_11665 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_11666;
	Closure_Code_11665:
	FUNCTION_ENTER("(lambda (ch) (if (char-uppercase\? ch) (integer->char (+ (char->integer ch) char-aA)) ch))");
	RUNTIME_ASSERT(STACK_ARGC() == 1) ;
	DEBUG_TRACE("start: if: (if (char-uppercase\? ch) (integer->char (+ (char->integer ch) char-aA)) ch)") ;

	DEBUG_TRACE("start: application: (char-uppercase\? ch)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: ch") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: ch") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: char-uppercase\?") ;
	machine.reg[RES] = getSymbol("char-uppercase?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: char-uppercase\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_11660) ;
	ret_from_app_11660:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (char-uppercase\? ch)") ;
	if (sobIsFalse(machine.reg[RES])) goto If_Else_11663;
	DEBUG_NOTICE("branch taken");
	DEBUG_TRACE("start: app tp: (integer->char (+ (char->integer ch) char-aA))") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: application: (+ (char->integer ch) char-aA)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var bound: char-aA") ;
	machine.reg[RES] = getBoundVar (STACK_ENV(), 0, 0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var bound: char-aA") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: application: (char->integer ch)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: ch") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: ch") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: char->integer") ;
	machine.reg[RES] = getSymbol("char->integer") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: char->integer") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_11661) ;
	ret_from_app_11661:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (char->integer ch)") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: +") ;
	machine.reg[RES] = getSymbol("+") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: +") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_11662) ;
	ret_from_app_11662:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (+ (char->integer ch) char-aA)") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: var free: integer->char") ;
	machine.reg[RES] = getSymbol("integer->char") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: integer->char") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 1 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +2 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 1, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: (integer->char (+ (char->integer ch) char-aA))") ;
	goto If_Done_11664;
	If_Else_11663:
	DEBUG_NOTICE("branch not taken");
	DEBUG_TRACE("start: var param: ch") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: ch") ;
	If_Done_11664:

	DEBUG_TRACE("end: if: (if (char-uppercase\? ch) (integer->char (+ (char->integer ch) char-aA)) ch)") ;
	FUNCTION_EXIT ("(lambda (ch) (if (char-uppercase\? ch) (integer->char (+ (char->integer ch) char-aA)) ch))");
	Continue_11666:
	DEBUG_TRACE("end: lambda: (lambda (ch) (if (char-uppercase\? ch) (integer->char (+ (char->integer ch) char-aA)) ch))") ;
	FUNCTION_EXIT ("(lambda (char-aA) (lambda (ch) (if (char-uppercase\? ch) (integer->char (+ (char->integer ch) char-aA)) ch)))");
	Continue_11668:
	DEBUG_TRACE("end: lambda: (lambda (char-aA) (lambda (ch) (if (char-uppercase\? ch) (integer->char (+ (char->integer ch) char-aA)) ch)))") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_11659) ;
	ret_from_app_11659:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: ((lambda (char-aA) (lambda (ch) (if (char-uppercase\? ch) (integer->char (+ (char->integer ch) char-aA)) ch))) (- (char->integer #\\a) (char->integer #\\A)))") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("char-downcase") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define char-downcase ((lambda (char-aA) (lambda (ch) (if (char-uppercase\? ch) (integer->char (+ (char->integer ch) char-aA)) ch))) (- (char->integer #\\a) (char->integer #\\A))))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_11655:
	
	pushDummyFrame(&&exit_11669) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define char-ci<=\? (order (lambda (ch1 ch2) (char<=\? (char-upcase ch1) (char-upcase ch2))))) **********") ;
	DEBUG_TRACE("start: def: (define char-ci<=\? (order (lambda (ch1 ch2) (char<=\? (char-upcase ch1) (char-upcase ch2)))))") ;
	DEBUG_TRACE("start: application: (order (lambda (ch1 ch2) (char<=\? (char-upcase ch1) (char-upcase ch2))))") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: lambda: (lambda (ch1 ch2) (char<=\? (char-upcase ch1) (char-upcase ch2)))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_11672 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_11673;
	Closure_Code_11672:
	FUNCTION_ENTER("(lambda (ch1 ch2) (char<=\? (char-upcase ch1) (char-upcase ch2)))");
	RUNTIME_ASSERT(STACK_ARGC() == 2) ;
	DEBUG_TRACE("start: app tp: (char<=\? (char-upcase ch1) (char-upcase ch2))") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: application: (char-upcase ch2)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: ch2") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: ch2") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: char-upcase") ;
	machine.reg[RES] = getSymbol("char-upcase") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: char-upcase") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_11670) ;
	ret_from_app_11670:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (char-upcase ch2)") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: application: (char-upcase ch1)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: ch1") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: ch1") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: char-upcase") ;
	machine.reg[RES] = getSymbol("char-upcase") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: char-upcase") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_11671) ;
	ret_from_app_11671:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (char-upcase ch1)") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: var free: char<=\?") ;
	machine.reg[RES] = getSymbol("char<=?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: char<=\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 2 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	machine.stack[machine.fp+2] = machine.stack[machine.sp+1] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +3 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 2, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: (char<=\? (char-upcase ch1) (char-upcase ch2))") ;
	FUNCTION_EXIT ("(lambda (ch1 ch2) (char<=\? (char-upcase ch1) (char-upcase ch2)))");
	Continue_11673:
	DEBUG_TRACE("end: lambda: (lambda (ch1 ch2) (char<=\? (char-upcase ch1) (char-upcase ch2)))") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: order") ;
	machine.reg[RES] = getSymbol("order") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: order") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_11674) ;
	ret_from_app_11674:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (order (lambda (ch1 ch2) (char<=\? (char-upcase ch1) (char-upcase ch2))))") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("char-ci<=\?") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define char-ci<=\? (order (lambda (ch1 ch2) (char<=\? (char-upcase ch1) (char-upcase ch2)))))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_11669:
	
	pushDummyFrame(&&exit_11675) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define char-ci<\? (order (lambda (ch1 ch2) (char<\? (char-upcase ch1) (char-upcase ch2))))) **********") ;
	DEBUG_TRACE("start: def: (define char-ci<\? (order (lambda (ch1 ch2) (char<\? (char-upcase ch1) (char-upcase ch2)))))") ;
	DEBUG_TRACE("start: application: (order (lambda (ch1 ch2) (char<\? (char-upcase ch1) (char-upcase ch2))))") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: lambda: (lambda (ch1 ch2) (char<\? (char-upcase ch1) (char-upcase ch2)))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_11678 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_11679;
	Closure_Code_11678:
	FUNCTION_ENTER("(lambda (ch1 ch2) (char<\? (char-upcase ch1) (char-upcase ch2)))");
	RUNTIME_ASSERT(STACK_ARGC() == 2) ;
	DEBUG_TRACE("start: app tp: (char<\? (char-upcase ch1) (char-upcase ch2))") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: application: (char-upcase ch2)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: ch2") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: ch2") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: char-upcase") ;
	machine.reg[RES] = getSymbol("char-upcase") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: char-upcase") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_11676) ;
	ret_from_app_11676:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (char-upcase ch2)") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: application: (char-upcase ch1)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: ch1") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: ch1") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: char-upcase") ;
	machine.reg[RES] = getSymbol("char-upcase") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: char-upcase") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_11677) ;
	ret_from_app_11677:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (char-upcase ch1)") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: var free: char<\?") ;
	machine.reg[RES] = getSymbol("char<?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: char<\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 2 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	machine.stack[machine.fp+2] = machine.stack[machine.sp+1] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +3 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 2, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: (char<\? (char-upcase ch1) (char-upcase ch2))") ;
	FUNCTION_EXIT ("(lambda (ch1 ch2) (char<\? (char-upcase ch1) (char-upcase ch2)))");
	Continue_11679:
	DEBUG_TRACE("end: lambda: (lambda (ch1 ch2) (char<\? (char-upcase ch1) (char-upcase ch2)))") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: order") ;
	machine.reg[RES] = getSymbol("order") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: order") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_11680) ;
	ret_from_app_11680:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (order (lambda (ch1 ch2) (char<\? (char-upcase ch1) (char-upcase ch2))))") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("char-ci<\?") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define char-ci<\? (order (lambda (ch1 ch2) (char<\? (char-upcase ch1) (char-upcase ch2)))))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_11675:
	
	pushDummyFrame(&&exit_11681) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define char-ci=\? (order (lambda (ch1 ch2) (char=\? (char-upcase ch1) (char-upcase ch2))))) **********") ;
	DEBUG_TRACE("start: def: (define char-ci=\? (order (lambda (ch1 ch2) (char=\? (char-upcase ch1) (char-upcase ch2)))))") ;
	DEBUG_TRACE("start: application: (order (lambda (ch1 ch2) (char=\? (char-upcase ch1) (char-upcase ch2))))") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: lambda: (lambda (ch1 ch2) (char=\? (char-upcase ch1) (char-upcase ch2)))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_11684 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_11685;
	Closure_Code_11684:
	FUNCTION_ENTER("(lambda (ch1 ch2) (char=\? (char-upcase ch1) (char-upcase ch2)))");
	RUNTIME_ASSERT(STACK_ARGC() == 2) ;
	DEBUG_TRACE("start: app tp: (char=\? (char-upcase ch1) (char-upcase ch2))") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: application: (char-upcase ch2)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: ch2") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: ch2") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: char-upcase") ;
	machine.reg[RES] = getSymbol("char-upcase") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: char-upcase") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_11682) ;
	ret_from_app_11682:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (char-upcase ch2)") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: application: (char-upcase ch1)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: ch1") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: ch1") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: char-upcase") ;
	machine.reg[RES] = getSymbol("char-upcase") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: char-upcase") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_11683) ;
	ret_from_app_11683:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (char-upcase ch1)") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: var free: char=\?") ;
	machine.reg[RES] = getSymbol("char=?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: char=\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 2 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	machine.stack[machine.fp+2] = machine.stack[machine.sp+1] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +3 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 2, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: (char=\? (char-upcase ch1) (char-upcase ch2))") ;
	FUNCTION_EXIT ("(lambda (ch1 ch2) (char=\? (char-upcase ch1) (char-upcase ch2)))");
	Continue_11685:
	DEBUG_TRACE("end: lambda: (lambda (ch1 ch2) (char=\? (char-upcase ch1) (char-upcase ch2)))") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: order") ;
	machine.reg[RES] = getSymbol("order") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: order") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_11686) ;
	ret_from_app_11686:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (order (lambda (ch1 ch2) (char=\? (char-upcase ch1) (char-upcase ch2))))") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("char-ci=\?") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define char-ci=\? (order (lambda (ch1 ch2) (char=\? (char-upcase ch1) (char-upcase ch2)))))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_11681:
	
	pushDummyFrame(&&exit_11687) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define char-ci>\? (order (lambda (ch1 ch2) (char>\? (char-upcase ch1) (char-upcase ch2))))) **********") ;
	DEBUG_TRACE("start: def: (define char-ci>\? (order (lambda (ch1 ch2) (char>\? (char-upcase ch1) (char-upcase ch2)))))") ;
	DEBUG_TRACE("start: application: (order (lambda (ch1 ch2) (char>\? (char-upcase ch1) (char-upcase ch2))))") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: lambda: (lambda (ch1 ch2) (char>\? (char-upcase ch1) (char-upcase ch2)))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_11690 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_11691;
	Closure_Code_11690:
	FUNCTION_ENTER("(lambda (ch1 ch2) (char>\? (char-upcase ch1) (char-upcase ch2)))");
	RUNTIME_ASSERT(STACK_ARGC() == 2) ;
	DEBUG_TRACE("start: app tp: (char>\? (char-upcase ch1) (char-upcase ch2))") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: application: (char-upcase ch2)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: ch2") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: ch2") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: char-upcase") ;
	machine.reg[RES] = getSymbol("char-upcase") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: char-upcase") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_11688) ;
	ret_from_app_11688:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (char-upcase ch2)") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: application: (char-upcase ch1)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: ch1") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: ch1") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: char-upcase") ;
	machine.reg[RES] = getSymbol("char-upcase") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: char-upcase") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_11689) ;
	ret_from_app_11689:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (char-upcase ch1)") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: var free: char>\?") ;
	machine.reg[RES] = getSymbol("char>?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: char>\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 2 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	machine.stack[machine.fp+2] = machine.stack[machine.sp+1] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +3 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 2, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: (char>\? (char-upcase ch1) (char-upcase ch2))") ;
	FUNCTION_EXIT ("(lambda (ch1 ch2) (char>\? (char-upcase ch1) (char-upcase ch2)))");
	Continue_11691:
	DEBUG_TRACE("end: lambda: (lambda (ch1 ch2) (char>\? (char-upcase ch1) (char-upcase ch2)))") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: order") ;
	machine.reg[RES] = getSymbol("order") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: order") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_11692) ;
	ret_from_app_11692:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (order (lambda (ch1 ch2) (char>\? (char-upcase ch1) (char-upcase ch2))))") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("char-ci>\?") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define char-ci>\? (order (lambda (ch1 ch2) (char>\? (char-upcase ch1) (char-upcase ch2)))))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_11687:
	
	pushDummyFrame(&&exit_11693) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define char-ci>=\? (order (lambda (ch1 ch2) (char>=\? (char-upcase ch1) (char-upcase ch2))))) **********") ;
	DEBUG_TRACE("start: def: (define char-ci>=\? (order (lambda (ch1 ch2) (char>=\? (char-upcase ch1) (char-upcase ch2)))))") ;
	DEBUG_TRACE("start: application: (order (lambda (ch1 ch2) (char>=\? (char-upcase ch1) (char-upcase ch2))))") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: lambda: (lambda (ch1 ch2) (char>=\? (char-upcase ch1) (char-upcase ch2)))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_11696 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_11697;
	Closure_Code_11696:
	FUNCTION_ENTER("(lambda (ch1 ch2) (char>=\? (char-upcase ch1) (char-upcase ch2)))");
	RUNTIME_ASSERT(STACK_ARGC() == 2) ;
	DEBUG_TRACE("start: app tp: (char>=\? (char-upcase ch1) (char-upcase ch2))") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: application: (char-upcase ch2)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: ch2") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: ch2") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: char-upcase") ;
	machine.reg[RES] = getSymbol("char-upcase") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: char-upcase") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_11694) ;
	ret_from_app_11694:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (char-upcase ch2)") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: application: (char-upcase ch1)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: ch1") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: ch1") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: char-upcase") ;
	machine.reg[RES] = getSymbol("char-upcase") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: char-upcase") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_11695) ;
	ret_from_app_11695:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (char-upcase ch1)") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: var free: char>=\?") ;
	machine.reg[RES] = getSymbol("char>=?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: char>=\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 2 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	machine.stack[machine.fp+2] = machine.stack[machine.sp+1] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +3 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 2, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: (char>=\? (char-upcase ch1) (char-upcase ch2))") ;
	FUNCTION_EXIT ("(lambda (ch1 ch2) (char>=\? (char-upcase ch1) (char-upcase ch2)))");
	Continue_11697:
	DEBUG_TRACE("end: lambda: (lambda (ch1 ch2) (char>=\? (char-upcase ch1) (char-upcase ch2)))") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: order") ;
	machine.reg[RES] = getSymbol("order") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: order") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_11698) ;
	ret_from_app_11698:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (order (lambda (ch1 ch2) (char>=\? (char-upcase ch1) (char-upcase ch2))))") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("char-ci>=\?") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define char-ci>=\? (order (lambda (ch1 ch2) (char>=\? (char-upcase ch1) (char-upcase ch2)))))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_11693:
	
	pushDummyFrame(&&exit_11699) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define string-upcase (lambda (string) (list->string (map char-upcase (string->list string))))) **********") ;
	DEBUG_TRACE("start: def: (define string-upcase (lambda (string) (list->string (map char-upcase (string->list string)))))") ;
	DEBUG_TRACE("start: lambda: (lambda (string) (list->string (map char-upcase (string->list string))))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_11702 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_11703;
	Closure_Code_11702:
	FUNCTION_ENTER("(lambda (string) (list->string (map char-upcase (string->list string))))");
	RUNTIME_ASSERT(STACK_ARGC() == 1) ;
	DEBUG_TRACE("start: app tp: (list->string (map char-upcase (string->list string)))") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: application: (map char-upcase (string->list string))") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: application: (string->list string)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: string") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: string") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: string->list") ;
	machine.reg[RES] = getSymbol("string->list") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: string->list") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_11700) ;
	ret_from_app_11700:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (string->list string)") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var free: char-upcase") ;
	machine.reg[RES] = getSymbol("char-upcase") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: char-upcase") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: map") ;
	machine.reg[RES] = getSymbol("map") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: map") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_11701) ;
	ret_from_app_11701:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (map char-upcase (string->list string))") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: var free: list->string") ;
	machine.reg[RES] = getSymbol("list->string") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: list->string") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 1 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +2 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 1, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: (list->string (map char-upcase (string->list string)))") ;
	FUNCTION_EXIT ("(lambda (string) (list->string (map char-upcase (string->list string))))");
	Continue_11703:
	DEBUG_TRACE("end: lambda: (lambda (string) (list->string (map char-upcase (string->list string))))") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("string-upcase") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define string-upcase (lambda (string) (list->string (map char-upcase (string->list string)))))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_11699:
	
	pushDummyFrame(&&exit_11704) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define string-downcase (lambda (string) (list->string (map char-downcase (string->list string))))) **********") ;
	DEBUG_TRACE("start: def: (define string-downcase (lambda (string) (list->string (map char-downcase (string->list string)))))") ;
	DEBUG_TRACE("start: lambda: (lambda (string) (list->string (map char-downcase (string->list string))))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_11707 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_11708;
	Closure_Code_11707:
	FUNCTION_ENTER("(lambda (string) (list->string (map char-downcase (string->list string))))");
	RUNTIME_ASSERT(STACK_ARGC() == 1) ;
	DEBUG_TRACE("start: app tp: (list->string (map char-downcase (string->list string)))") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: application: (map char-downcase (string->list string))") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: application: (string->list string)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: string") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: string") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: string->list") ;
	machine.reg[RES] = getSymbol("string->list") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: string->list") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_11705) ;
	ret_from_app_11705:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (string->list string)") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var free: char-downcase") ;
	machine.reg[RES] = getSymbol("char-downcase") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: char-downcase") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: map") ;
	machine.reg[RES] = getSymbol("map") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: map") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_11706) ;
	ret_from_app_11706:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (map char-downcase (string->list string))") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: var free: list->string") ;
	machine.reg[RES] = getSymbol("list->string") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: list->string") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 1 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +2 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 1, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: (list->string (map char-downcase (string->list string)))") ;
	FUNCTION_EXIT ("(lambda (string) (list->string (map char-downcase (string->list string))))");
	Continue_11708:
	DEBUG_TRACE("end: lambda: (lambda (string) (list->string (map char-downcase (string->list string))))") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("string-downcase") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define string-downcase (lambda (string) (list->string (map char-downcase (string->list string)))))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_11704:
	
	pushDummyFrame(&&exit_11709) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define even\? (lambda (n) (zero\? (remainder n 2)))) **********") ;
	DEBUG_TRACE("start: def: (define even\? (lambda (n) (zero\? (remainder n 2))))") ;
	DEBUG_TRACE("start: lambda: (lambda (n) (zero\? (remainder n 2)))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_11711 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_11712;
	Closure_Code_11711:
	FUNCTION_ENTER("(lambda (n) (zero\? (remainder n 2)))");
	RUNTIME_ASSERT(STACK_ARGC() == 1) ;
	DEBUG_TRACE("start: app tp: (zero\? (remainder n 2))") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: application: (remainder n 2)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	machine.reg[RES] = makeSchemeInt(2) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: n") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: n") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: remainder") ;
	machine.reg[RES] = getSymbol("remainder") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: remainder") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_11710) ;
	ret_from_app_11710:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (remainder n 2)") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: var free: zero\?") ;
	machine.reg[RES] = getSymbol("zero?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: zero\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 1 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +2 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 1, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: (zero\? (remainder n 2))") ;
	FUNCTION_EXIT ("(lambda (n) (zero\? (remainder n 2)))");
	Continue_11712:
	DEBUG_TRACE("end: lambda: (lambda (n) (zero\? (remainder n 2)))") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("even\?") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define even\? (lambda (n) (zero\? (remainder n 2))))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_11709:
	
	pushDummyFrame(&&exit_11713) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define odd\? (lambda (n) (not (zero\? (remainder n 2))))) **********") ;
	DEBUG_TRACE("start: def: (define odd\? (lambda (n) (not (zero\? (remainder n 2)))))") ;
	DEBUG_TRACE("start: lambda: (lambda (n) (not (zero\? (remainder n 2))))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_11716 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_11717;
	Closure_Code_11716:
	FUNCTION_ENTER("(lambda (n) (not (zero\? (remainder n 2))))");
	RUNTIME_ASSERT(STACK_ARGC() == 1) ;
	DEBUG_TRACE("start: app tp: (not (zero\? (remainder n 2)))") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: application: (zero\? (remainder n 2))") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: application: (remainder n 2)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	machine.reg[RES] = makeSchemeInt(2) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: n") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: n") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: remainder") ;
	machine.reg[RES] = getSymbol("remainder") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: remainder") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_11714) ;
	ret_from_app_11714:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (remainder n 2)") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: zero\?") ;
	machine.reg[RES] = getSymbol("zero?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: zero\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_11715) ;
	ret_from_app_11715:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (zero\? (remainder n 2))") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: var free: not") ;
	machine.reg[RES] = getSymbol("not") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: not") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 1 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +2 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 1, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: (not (zero\? (remainder n 2)))") ;
	FUNCTION_EXIT ("(lambda (n) (not (zero\? (remainder n 2))))");
	Continue_11717:
	DEBUG_TRACE("end: lambda: (lambda (n) (not (zero\? (remainder n 2))))") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("odd\?") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define odd\? (lambda (n) (not (zero\? (remainder n 2)))))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_11713:
	
	pushDummyFrame(&&exit_11718) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define list (lambda args args)) **********") ;
	DEBUG_TRACE("start: def: (define list (lambda args args))") ;
	DEBUG_TRACE("start: lambda opt: (lambda args args)") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[0]) ;
	machine.reg[1] = makeLocalEnv(STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[0] = extendEnv((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure(machine.reg[0], &&Closure_Code_11719) ;
	goto Continue_11720 ;
	Closure_Code_11719:
	FUNCTION_ENTER("(lambda args args)") ;
	RUNTIME_ASSERT(STACK_ARGC() >= 0) ;
	push((void*)machine.reg[0]) ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	push((void*)machine.reg[3]) ;
	/* backups since shifting the frame changes argc */
	machine.reg[1] = (void*)STACK_ARGC() ;
	machine.reg[1] = (void*)((Amount)machine.reg[1] - 0) ; /* amount of optional args */
	machine.reg[3] = (void*)(STACK_FRAME_SIZE()+4) ;
	machine.reg[0] = stackToSchemeList(STACK_ARGS()-0, (Amount)machine.reg[1]) ;
	/* shift_frame_up */
	machine.reg[2] = (void*)(machine.sp) ; /* loop counter */
	shift_frame_up_loop_start_11722:
	if (!((Amount)machine.reg[2] >= machine.sp-(Amount)machine.reg[3]+1)) goto shift_frame_up_loop_end_11723 ;
	machine.stack[(Amount)machine.reg[2]] = machine.stack[(Amount)machine.reg[2]-1] ;
	machine.reg[2] = (void*)((Amount)machine.reg[2] - 1) ; /* step */
	goto shift_frame_up_loop_start_11722 ;
	shift_frame_up_loop_end_11723:
	machine.fp += 1 ;
	goto after_frame_shift_11721 ;
	after_frame_shift_11721:
	machine.sp = machine.fp+4 ;
	machine.stack[machine.fp-4] = machine.stack[machine.fp-4]+1 ; /* fix ARGC, basically, STACK_ARGC() -= ... */
	*(STACK_ARGS()-0) = machine.reg[0] ; /* fix last argument */
	machine.reg[3] = pop() ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("start: var param: args") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: args") ;
	FUNCTION_EXIT("(lambda args args)") ;
	Continue_11720:
	machine.reg[0] = pop() ;
	machine.reg[1] = pop() ;
	DEBUG_TRACE("end: lambda opt: (lambda args args)") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("list") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define list (lambda args args))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_11718:
	
	pushDummyFrame(&&exit_11724) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define list-ref (lambda (s i) (if (zero\? i) (car s) (list-ref (cdr s) (- i 1))))) **********") ;
	DEBUG_TRACE("start: def: (define list-ref (lambda (s i) (if (zero\? i) (car s) (list-ref (cdr s) (- i 1)))))") ;
	DEBUG_TRACE("start: lambda: (lambda (s i) (if (zero\? i) (car s) (list-ref (cdr s) (- i 1))))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_11730 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_11731;
	Closure_Code_11730:
	FUNCTION_ENTER("(lambda (s i) (if (zero\? i) (car s) (list-ref (cdr s) (- i 1))))");
	RUNTIME_ASSERT(STACK_ARGC() == 2) ;
	DEBUG_TRACE("start: if: (if (zero\? i) (car s) (list-ref (cdr s) (- i 1)))") ;

	DEBUG_TRACE("start: application: (zero\? i)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: i") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: i") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: zero\?") ;
	machine.reg[RES] = getSymbol("zero?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: zero\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_11725) ;
	ret_from_app_11725:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (zero\? i)") ;
	if (sobIsFalse(machine.reg[RES])) goto If_Else_11728;
	DEBUG_NOTICE("branch taken");
	DEBUG_TRACE("start: app tp: (car s)") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: var param: s") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: var free: car") ;
	machine.reg[RES] = getSymbol("car") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: car") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 1 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +2 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 1, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: (car s)") ;
	goto If_Done_11729;
	If_Else_11728:
	DEBUG_NOTICE("branch not taken");
	DEBUG_TRACE("start: app tp: (list-ref (cdr s) (- i 1))") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: application: (- i 1)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	machine.reg[RES] = makeSchemeInt(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: i") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: i") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: -") ;
	machine.reg[RES] = getSymbol("-") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: -") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_11726) ;
	ret_from_app_11726:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (- i 1)") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: application: (cdr s)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: s") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: cdr") ;
	machine.reg[RES] = getSymbol("cdr") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: cdr") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_11727) ;
	ret_from_app_11727:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (cdr s)") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: var free: list-ref") ;
	machine.reg[RES] = getSymbol("list-ref") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: list-ref") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 2 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	machine.stack[machine.fp+2] = machine.stack[machine.sp+1] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +3 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 2, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: (list-ref (cdr s) (- i 1))") ;
	If_Done_11729:

	DEBUG_TRACE("end: if: (if (zero\? i) (car s) (list-ref (cdr s) (- i 1)))") ;
	FUNCTION_EXIT ("(lambda (s i) (if (zero\? i) (car s) (list-ref (cdr s) (- i 1))))");
	Continue_11731:
	DEBUG_TRACE("end: lambda: (lambda (s i) (if (zero\? i) (car s) (list-ref (cdr s) (- i 1))))") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("list-ref") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define list-ref (lambda (s i) (if (zero\? i) (car s) (list-ref (cdr s) (- i 1)))))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_11724:
	
	pushDummyFrame(&&exit_11732) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define list\? (lambda (e) (or (null\? e) (if (pair\? e) (list\? (cdr e)) #f)))) **********") ;
	DEBUG_TRACE("start: def: (define list\? (lambda (e) (or (null\? e) (if (pair\? e) (list\? (cdr e)) #f))))") ;
	DEBUG_TRACE("start: lambda: (lambda (e) (or (null\? e) (if (pair\? e) (list\? (cdr e)) #f)))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_11739 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_11740;
	Closure_Code_11739:
	FUNCTION_ENTER("(lambda (e) (or (null\? e) (if (pair\? e) (list\? (cdr e)) #f)))");
	RUNTIME_ASSERT(STACK_ARGC() == 1) ;
	DEBUG_TRACE("start: or: (or (null\? e) (if (pair\? e) (list\? (cdr e)) #f))") ;
	DEBUG_TRACE("start: application: (null\? e)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: e") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: e") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: null\?") ;
	machine.reg[RES] = getSymbol("null?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: null\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_11734) ;
	ret_from_app_11734:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (null\? e)") ;
	if (sobIsntFalse(machine.reg[RES])) goto or_end_11733 ; /* end the 'or' if true */
	DEBUG_TRACE("start: if: (if (pair\? e) (list\? (cdr e)) #f)") ;

	DEBUG_TRACE("start: application: (pair\? e)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: e") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: e") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: pair\?") ;
	machine.reg[RES] = getSymbol("pair?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: pair\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_11735) ;
	ret_from_app_11735:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (pair\? e)") ;
	if (sobIsFalse(machine.reg[RES])) goto If_Else_11737;
	DEBUG_NOTICE("branch taken");
	DEBUG_TRACE("start: app tp: (list\? (cdr e))") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: application: (cdr e)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: e") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: e") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: cdr") ;
	machine.reg[RES] = getSymbol("cdr") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: cdr") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_11736) ;
	ret_from_app_11736:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (cdr e)") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: var free: list\?") ;
	machine.reg[RES] = getSymbol("list?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: list\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 1 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +2 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 1, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: (list\? (cdr e))") ;
	goto If_Done_11738;
	If_Else_11737:
	DEBUG_NOTICE("branch not taken");
	machine.reg[RES] = makeSchemeBool(FALSE);
	If_Done_11738:

	DEBUG_TRACE("end: if: (if (pair\? e) (list\? (cdr e)) #f)") ;
	or_end_11733:
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: or: (or (null\? e) (if (pair\? e) (list\? (cdr e)) #f))") ;
	FUNCTION_EXIT ("(lambda (e) (or (null\? e) (if (pair\? e) (list\? (cdr e)) #f)))");
	Continue_11740:
	DEBUG_TRACE("end: lambda: (lambda (e) (or (null\? e) (if (pair\? e) (list\? (cdr e)) #f)))") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("list\?") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define list\? (lambda (e) (or (null\? e) (if (pair\? e) (list\? (cdr e)) #f))))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_11732:
	
	pushDummyFrame(&&exit_11741) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define map ((lambda (map-list map-one) (begin (set! map-list (box map-list)) (set! map-one (box map-one)) (vector-set! map-list 0 (lambda (f lists) (if (null\? (car lists)) \'() (cons (apply f ((vector-ref map-one 0) car lists)) ((vector-ref map-list 0) f ((vector-ref map-one 0) cdr lists)))))) (vector-set! map-one 0 (lambda (f s) (if (null\? s) \'() (cons (f (car s)) ((vector-ref map-one 0) f (cdr s)))))) ((lambda () (lambda (f . args) ((vector-ref map-list 0) f args)))))) #f #f)) **********") ;
	DEBUG_TRACE("start: def: (define map ((lambda (map-list map-one) (begin (set! map-list (box map-list)) (set! map-one (box map-one)) (vector-set! map-list 0 (lambda (f lists) (if (null\? (car lists)) \'() (cons (apply f ((vector-ref map-one 0) car lists)) ((vector-ref map-list 0) f ((vector-ref map-one 0) cdr lists)))))) (vector-set! map-one 0 (lambda (f s) (if (null\? s) \'() (cons (f (car s)) ((vector-ref map-one 0) f (cdr s)))))) ((lambda () (lambda (f . args) ((vector-ref map-list 0) f args)))))) #f #f))") ;
	DEBUG_TRACE("start: application: ((lambda (map-list map-one) (begin (set! map-list (box map-list)) (set! map-one (box map-one)) (vector-set! map-list 0 (lambda (f lists) (if (null\? (car lists)) \'() (cons (apply f ((vector-ref map-one 0) car lists)) ((vector-ref map-list 0) f ((vector-ref map-one 0) cdr lists)))))) (vector-set! map-one 0 (lambda (f s) (if (null\? s) \'() (cons (f (car s)) ((vector-ref map-one 0) f (cdr s)))))) ((lambda () (lambda (f . args) ((vector-ref map-list 0) f args)))))) #f #f)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	machine.reg[RES] = makeSchemeBool(FALSE);
	push((void*)machine.reg[RES]) ;
	machine.reg[RES] = makeSchemeBool(FALSE);
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: lambda: (lambda (map-list map-one) (begin (set! map-list (box map-list)) (set! map-one (box map-one)) (vector-set! map-list 0 (lambda (f lists) (if (null\? (car lists)) \'() (cons (apply f ((vector-ref map-one 0) car lists)) ((vector-ref map-list 0) f ((vector-ref map-one 0) cdr lists)))))) (vector-set! map-one 0 (lambda (f s) (if (null\? s) \'() (cons (f (car s)) ((vector-ref map-one 0) f (cdr s)))))) ((lambda () (lambda (f . args) ((vector-ref map-list 0) f args))))))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_11778 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_11779;
	Closure_Code_11778:
	FUNCTION_ENTER("(lambda (map-list map-one) (begin (set! map-list (box map-list)) (set! map-one (box map-one)) (vector-set! map-list 0 (lambda (f lists) (if (null\? (car lists)) \'() (cons (apply f ((vector-ref map-one 0) car lists)) ((vector-ref map-list 0) f ((vector-ref map-one 0) cdr lists)))))) (vector-set! map-one 0 (lambda (f s) (if (null\? s) \'() (cons (f (car s)) ((vector-ref map-one 0) f (cdr s)))))) ((lambda () (lambda (f . args) ((vector-ref map-list 0) f args))))))");
	RUNTIME_ASSERT(STACK_ARGC() == 2) ;
	DEBUG_TRACE("start: sequence: (begin (set! map-list (box map-list)) (set! map-one (box map-one)) (vector-set! map-list 0 (lambda (f lists) (if (null\? (car lists)) \'() (cons (apply f ((vector-ref map-one 0) car lists)) ((vector-ref map-list 0) f ((vector-ref map-one 0) cdr lists)))))) (vector-set! map-one 0 (lambda (f s) (if (null\? s) \'() (cons (f (car s)) ((vector-ref map-one 0) f (cdr s)))))) ((lambda () (lambda (f . args) ((vector-ref map-list 0) f args)))))") ;
	/* start new begin statement */
	DEBUG_TRACE("start: set: (set! map-list (box map-list))") ;
	DEBUG_TRACE("start: application: (box map-list)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: map-list") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: map-list") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: box") ;
	machine.reg[RES] = getSymbol("box") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: box") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_11743) ;
	ret_from_app_11743:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (box map-list)") ;
	*(STACK_ARGS()-0) = machine.reg[RES] ;
	machine.reg[RES] = makeSchemeVoid() ;
	DEBUG_TRACE("end: set: (set! map-list (box map-list))") ;
	/* start new begin statement */
	DEBUG_TRACE("start: set: (set! map-one (box map-one))") ;
	DEBUG_TRACE("start: application: (box map-one)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: map-one") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: map-one") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: box") ;
	machine.reg[RES] = getSymbol("box") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: box") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_11744) ;
	ret_from_app_11744:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (box map-one)") ;
	*(STACK_ARGS()-1) = machine.reg[RES] ;
	machine.reg[RES] = makeSchemeVoid() ;
	DEBUG_TRACE("end: set: (set! map-one (box map-one))") ;
	/* start new begin statement */
	DEBUG_TRACE("start: application: (vector-set! map-list 0 (lambda (f lists) (if (null\? (car lists)) \'() (cons (apply f ((vector-ref map-one 0) car lists)) ((vector-ref map-list 0) f ((vector-ref map-one 0) cdr lists))))))") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: lambda: (lambda (f lists) (if (null\? (car lists)) \'() (cons (apply f ((vector-ref map-one 0) car lists)) ((vector-ref map-list 0) f ((vector-ref map-one 0) cdr lists)))))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_11756 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_11757;
	Closure_Code_11756:
	FUNCTION_ENTER("(lambda (f lists) (if (null\? (car lists)) \'() (cons (apply f ((vector-ref map-one 0) car lists)) ((vector-ref map-list 0) f ((vector-ref map-one 0) cdr lists)))))");
	RUNTIME_ASSERT(STACK_ARGC() == 2) ;
	DEBUG_TRACE("start: if: (if (null\? (car lists)) \'() (cons (apply f ((vector-ref map-one 0) car lists)) ((vector-ref map-list 0) f ((vector-ref map-one 0) cdr lists))))") ;

	DEBUG_TRACE("start: application: (null\? (car lists))") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: application: (car lists)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: lists") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: lists") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: car") ;
	machine.reg[RES] = getSymbol("car") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: car") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_11745) ;
	ret_from_app_11745:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (car lists)") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: null\?") ;
	machine.reg[RES] = getSymbol("null?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: null\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_11746) ;
	ret_from_app_11746:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (null\? (car lists))") ;
	if (sobIsFalse(machine.reg[RES])) goto If_Else_11754;
	DEBUG_NOTICE("branch taken");
	machine.reg[RES] = schemeNil ;
	goto If_Done_11755;
	If_Else_11754:
	DEBUG_NOTICE("branch not taken");
	DEBUG_TRACE("start: app tp: (cons (apply f ((vector-ref map-one 0) car lists)) ((vector-ref map-list 0) f ((vector-ref map-one 0) cdr lists)))") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: application: ((vector-ref map-list 0) f ((vector-ref map-one 0) cdr lists))") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: application: ((vector-ref map-one 0) cdr lists)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: lists") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: lists") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var free: cdr") ;
	machine.reg[RES] = getSymbol("cdr") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: cdr") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: application: (vector-ref map-one 0)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	machine.reg[RES] = makeSchemeInt(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var bound: map-one") ;
	machine.reg[RES] = getBoundVar (STACK_ENV(), 0, 1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var bound: map-one") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: vector-ref") ;
	machine.reg[RES] = getSymbol("vector-ref") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: vector-ref") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_11748) ;
	ret_from_app_11748:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (vector-ref map-one 0)") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_11747) ;
	ret_from_app_11747:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: ((vector-ref map-one 0) cdr lists)") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: f") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: f") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: application: (vector-ref map-list 0)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	machine.reg[RES] = makeSchemeInt(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var bound: map-list") ;
	machine.reg[RES] = getBoundVar (STACK_ENV(), 0, 0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var bound: map-list") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: vector-ref") ;
	machine.reg[RES] = getSymbol("vector-ref") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: vector-ref") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_11750) ;
	ret_from_app_11750:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (vector-ref map-list 0)") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_11749) ;
	ret_from_app_11749:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: ((vector-ref map-list 0) f ((vector-ref map-one 0) cdr lists))") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: application: (apply f ((vector-ref map-one 0) car lists))") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: application: ((vector-ref map-one 0) car lists)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: lists") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: lists") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var free: car") ;
	machine.reg[RES] = getSymbol("car") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: car") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: application: (vector-ref map-one 0)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	machine.reg[RES] = makeSchemeInt(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var bound: map-one") ;
	machine.reg[RES] = getBoundVar (STACK_ENV(), 0, 1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var bound: map-one") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: vector-ref") ;
	machine.reg[RES] = getSymbol("vector-ref") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: vector-ref") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_11752) ;
	ret_from_app_11752:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (vector-ref map-one 0)") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_11751) ;
	ret_from_app_11751:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: ((vector-ref map-one 0) car lists)") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: f") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: f") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: apply") ;
	machine.reg[RES] = getSymbol("apply") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: apply") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_11753) ;
	ret_from_app_11753:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (apply f ((vector-ref map-one 0) car lists))") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: var free: cons") ;
	machine.reg[RES] = getSymbol("cons") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: cons") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 2 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	machine.stack[machine.fp+2] = machine.stack[machine.sp+1] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +3 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 2, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: (cons (apply f ((vector-ref map-one 0) car lists)) ((vector-ref map-list 0) f ((vector-ref map-one 0) cdr lists)))") ;
	If_Done_11755:

	DEBUG_TRACE("end: if: (if (null\? (car lists)) \'() (cons (apply f ((vector-ref map-one 0) car lists)) ((vector-ref map-list 0) f ((vector-ref map-one 0) cdr lists))))") ;
	FUNCTION_EXIT ("(lambda (f lists) (if (null\? (car lists)) \'() (cons (apply f ((vector-ref map-one 0) car lists)) ((vector-ref map-list 0) f ((vector-ref map-one 0) cdr lists)))))");
	Continue_11757:
	DEBUG_TRACE("end: lambda: (lambda (f lists) (if (null\? (car lists)) \'() (cons (apply f ((vector-ref map-one 0) car lists)) ((vector-ref map-list 0) f ((vector-ref map-one 0) cdr lists)))))") ;
	push((void*)machine.reg[RES]) ;
	machine.reg[RES] = makeSchemeInt(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: map-list") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: map-list") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: vector-set!") ;
	machine.reg[RES] = getSymbol("vector-set!") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: vector-set!") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 3, machine.reg[1], &&ret_from_app_11758) ;
	ret_from_app_11758:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (vector-set! map-list 0 (lambda (f lists) (if (null\? (car lists)) \'() (cons (apply f ((vector-ref map-one 0) car lists)) ((vector-ref map-list 0) f ((vector-ref map-one 0) cdr lists))))))") ;
	/* start new begin statement */
	DEBUG_TRACE("start: application: (vector-set! map-one 0 (lambda (f s) (if (null\? s) \'() (cons (f (car s)) ((vector-ref map-one 0) f (cdr s))))))") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: lambda: (lambda (f s) (if (null\? s) \'() (cons (f (car s)) ((vector-ref map-one 0) f (cdr s)))))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_11767 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_11768;
	Closure_Code_11767:
	FUNCTION_ENTER("(lambda (f s) (if (null\? s) \'() (cons (f (car s)) ((vector-ref map-one 0) f (cdr s)))))");
	RUNTIME_ASSERT(STACK_ARGC() == 2) ;
	DEBUG_TRACE("start: if: (if (null\? s) \'() (cons (f (car s)) ((vector-ref map-one 0) f (cdr s))))") ;

	DEBUG_TRACE("start: application: (null\? s)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: s") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: null\?") ;
	machine.reg[RES] = getSymbol("null?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: null\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_11759) ;
	ret_from_app_11759:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (null\? s)") ;
	if (sobIsFalse(machine.reg[RES])) goto If_Else_11765;
	DEBUG_NOTICE("branch taken");
	machine.reg[RES] = schemeNil ;
	goto If_Done_11766;
	If_Else_11765:
	DEBUG_NOTICE("branch not taken");
	DEBUG_TRACE("start: app tp: (cons (f (car s)) ((vector-ref map-one 0) f (cdr s)))") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: application: ((vector-ref map-one 0) f (cdr s))") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: application: (cdr s)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: s") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: cdr") ;
	machine.reg[RES] = getSymbol("cdr") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: cdr") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_11760) ;
	ret_from_app_11760:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (cdr s)") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: f") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: f") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: application: (vector-ref map-one 0)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	machine.reg[RES] = makeSchemeInt(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var bound: map-one") ;
	machine.reg[RES] = getBoundVar (STACK_ENV(), 0, 1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var bound: map-one") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: vector-ref") ;
	machine.reg[RES] = getSymbol("vector-ref") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: vector-ref") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_11762) ;
	ret_from_app_11762:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (vector-ref map-one 0)") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_11761) ;
	ret_from_app_11761:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: ((vector-ref map-one 0) f (cdr s))") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: application: (f (car s))") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: application: (car s)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: s") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: car") ;
	machine.reg[RES] = getSymbol("car") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: car") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_11763) ;
	ret_from_app_11763:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (car s)") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var param: f") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: f") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_11764) ;
	ret_from_app_11764:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (f (car s))") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: var free: cons") ;
	machine.reg[RES] = getSymbol("cons") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: cons") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 2 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	machine.stack[machine.fp+2] = machine.stack[machine.sp+1] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +3 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 2, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: (cons (f (car s)) ((vector-ref map-one 0) f (cdr s)))") ;
	If_Done_11766:

	DEBUG_TRACE("end: if: (if (null\? s) \'() (cons (f (car s)) ((vector-ref map-one 0) f (cdr s))))") ;
	FUNCTION_EXIT ("(lambda (f s) (if (null\? s) \'() (cons (f (car s)) ((vector-ref map-one 0) f (cdr s)))))");
	Continue_11768:
	DEBUG_TRACE("end: lambda: (lambda (f s) (if (null\? s) \'() (cons (f (car s)) ((vector-ref map-one 0) f (cdr s)))))") ;
	push((void*)machine.reg[RES]) ;
	machine.reg[RES] = makeSchemeInt(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: map-one") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: map-one") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: vector-set!") ;
	machine.reg[RES] = getSymbol("vector-set!") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: vector-set!") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 3, machine.reg[1], &&ret_from_app_11769) ;
	ret_from_app_11769:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (vector-set! map-one 0 (lambda (f s) (if (null\? s) \'() (cons (f (car s)) ((vector-ref map-one 0) f (cdr s))))))") ;
	/* start new begin statement */
	DEBUG_TRACE("start: app tp: ((lambda () (lambda (f . args) ((vector-ref map-list 0) f args))))") ;
	/* Start of Pushing args */
	/* End of Pushing args */
	DEBUG_TRACE("start: lambda: (lambda () (lambda (f . args) ((vector-ref map-list 0) f args)))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_11776 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_11777;
	Closure_Code_11776:
	FUNCTION_ENTER("(lambda () (lambda (f . args) ((vector-ref map-list 0) f args)))");
	RUNTIME_ASSERT(STACK_ARGC() == 0) ;
	DEBUG_TRACE("start: lambda opt: (lambda (f . args) ((vector-ref map-list 0) f args))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[0]) ;
	machine.reg[1] = makeLocalEnv(STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[0] = extendEnv((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure(machine.reg[0], &&Closure_Code_11770) ;
	goto Continue_11771 ;
	Closure_Code_11770:
	FUNCTION_ENTER("(lambda (f . args) ((vector-ref map-list 0) f args))") ;
	RUNTIME_ASSERT(STACK_ARGC() >= 1) ;
	push((void*)machine.reg[0]) ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	push((void*)machine.reg[3]) ;
	/* backups since shifting the frame changes argc */
	machine.reg[1] = (void*)STACK_ARGC() ;
	machine.reg[1] = (void*)((Amount)machine.reg[1] - 1) ; /* amount of optional args */
	machine.reg[3] = (void*)(STACK_FRAME_SIZE()+4) ;
	machine.reg[0] = stackToSchemeList(STACK_ARGS()-1, (Amount)machine.reg[1]) ;
	/* shift_frame_up */
	machine.reg[2] = (void*)(machine.sp) ; /* loop counter */
	shift_frame_up_loop_start_11773:
	if (!((Amount)machine.reg[2] >= machine.sp-(Amount)machine.reg[3]+1)) goto shift_frame_up_loop_end_11774 ;
	machine.stack[(Amount)machine.reg[2]] = machine.stack[(Amount)machine.reg[2]-1] ;
	machine.reg[2] = (void*)((Amount)machine.reg[2] - 1) ; /* step */
	goto shift_frame_up_loop_start_11773 ;
	shift_frame_up_loop_end_11774:
	machine.fp += 1 ;
	goto after_frame_shift_11772 ;
	after_frame_shift_11772:
	machine.sp = machine.fp+4 ;
	machine.stack[machine.fp-4] = machine.stack[machine.fp-4]+1 ; /* fix ARGC, basically, STACK_ARGC() -= ... */
	*(STACK_ARGS()-1) = machine.reg[0] ; /* fix last argument */
	machine.reg[3] = pop() ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("start: app tp: ((vector-ref map-list 0) f args)") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: var param: args") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: args") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: f") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: f") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: application: (vector-ref map-list 0)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	machine.reg[RES] = makeSchemeInt(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var bound: map-list") ;
	machine.reg[RES] = getBoundVar (STACK_ENV(), 1, 0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var bound: map-list") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: vector-ref") ;
	machine.reg[RES] = getSymbol("vector-ref") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: vector-ref") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_11775) ;
	ret_from_app_11775:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (vector-ref map-list 0)") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 2 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	machine.stack[machine.fp+2] = machine.stack[machine.sp+1] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +3 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 2, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: ((vector-ref map-list 0) f args)") ;
	FUNCTION_EXIT("(lambda (f . args) ((vector-ref map-list 0) f args))") ;
	Continue_11771:
	machine.reg[0] = pop() ;
	machine.reg[1] = pop() ;
	DEBUG_TRACE("end: lambda opt: (lambda (f . args) ((vector-ref map-list 0) f args))") ;
	FUNCTION_EXIT ("(lambda () (lambda (f . args) ((vector-ref map-list 0) f args)))");
	Continue_11777:
	DEBUG_TRACE("end: lambda: (lambda () (lambda (f . args) ((vector-ref map-list 0) f args)))") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 0 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	/* End of overwriting old frame */
	machine.sp = machine.fp +1 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 0, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: ((lambda () (lambda (f . args) ((vector-ref map-list 0) f args))))") ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: sequence: (begin (set! map-list (box map-list)) (set! map-one (box map-one)) (vector-set! map-list 0 (lambda (f lists) (if (null\? (car lists)) \'() (cons (apply f ((vector-ref map-one 0) car lists)) ((vector-ref map-list 0) f ((vector-ref map-one 0) cdr lists)))))) (vector-set! map-one 0 (lambda (f s) (if (null\? s) \'() (cons (f (car s)) ((vector-ref map-one 0) f (cdr s)))))) ((lambda () (lambda (f . args) ((vector-ref map-list 0) f args)))))") ;
	FUNCTION_EXIT ("(lambda (map-list map-one) (begin (set! map-list (box map-list)) (set! map-one (box map-one)) (vector-set! map-list 0 (lambda (f lists) (if (null\? (car lists)) \'() (cons (apply f ((vector-ref map-one 0) car lists)) ((vector-ref map-list 0) f ((vector-ref map-one 0) cdr lists)))))) (vector-set! map-one 0 (lambda (f s) (if (null\? s) \'() (cons (f (car s)) ((vector-ref map-one 0) f (cdr s)))))) ((lambda () (lambda (f . args) ((vector-ref map-list 0) f args))))))");
	Continue_11779:
	DEBUG_TRACE("end: lambda: (lambda (map-list map-one) (begin (set! map-list (box map-list)) (set! map-one (box map-one)) (vector-set! map-list 0 (lambda (f lists) (if (null\? (car lists)) \'() (cons (apply f ((vector-ref map-one 0) car lists)) ((vector-ref map-list 0) f ((vector-ref map-one 0) cdr lists)))))) (vector-set! map-one 0 (lambda (f s) (if (null\? s) \'() (cons (f (car s)) ((vector-ref map-one 0) f (cdr s)))))) ((lambda () (lambda (f . args) ((vector-ref map-list 0) f args))))))") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_11742) ;
	ret_from_app_11742:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: ((lambda (map-list map-one) (begin (set! map-list (box map-list)) (set! map-one (box map-one)) (vector-set! map-list 0 (lambda (f lists) (if (null\? (car lists)) \'() (cons (apply f ((vector-ref map-one 0) car lists)) ((vector-ref map-list 0) f ((vector-ref map-one 0) cdr lists)))))) (vector-set! map-one 0 (lambda (f s) (if (null\? s) \'() (cons (f (car s)) ((vector-ref map-one 0) f (cdr s)))))) ((lambda () (lambda (f . args) ((vector-ref map-list 0) f args)))))) #f #f)") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("map") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define map ((lambda (map-list map-one) (begin (set! map-list (box map-list)) (set! map-one (box map-one)) (vector-set! map-list 0 (lambda (f lists) (if (null\? (car lists)) \'() (cons (apply f ((vector-ref map-one 0) car lists)) ((vector-ref map-list 0) f ((vector-ref map-one 0) cdr lists)))))) (vector-set! map-one 0 (lambda (f s) (if (null\? s) \'() (cons (f (car s)) ((vector-ref map-one 0) f (cdr s)))))) ((lambda () (lambda (f . args) ((vector-ref map-list 0) f args)))))) #f #f))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_11741:
	
	pushDummyFrame(&&exit_11780) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define member\? (lambda (a s) (ormap (lambda (b) (equal\? a b)) s))) **********") ;
	DEBUG_TRACE("start: def: (define member\? (lambda (a s) (ormap (lambda (b) (equal\? a b)) s)))") ;
	DEBUG_TRACE("start: lambda: (lambda (a s) (ormap (lambda (b) (equal\? a b)) s))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_11783 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_11784;
	Closure_Code_11783:
	FUNCTION_ENTER("(lambda (a s) (ormap (lambda (b) (equal\? a b)) s))");
	RUNTIME_ASSERT(STACK_ARGC() == 2) ;
	DEBUG_TRACE("start: app tp: (ormap (lambda (b) (equal\? a b)) s)") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: var param: s") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: lambda: (lambda (b) (equal\? a b))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_11781 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_11782;
	Closure_Code_11781:
	FUNCTION_ENTER("(lambda (b) (equal\? a b))");
	RUNTIME_ASSERT(STACK_ARGC() == 1) ;
	DEBUG_TRACE("start: app tp: (equal\? a b)") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: var param: b") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: b") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var bound: a") ;
	machine.reg[RES] = getBoundVar (STACK_ENV(), 0, 0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var bound: a") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: var free: equal\?") ;
	machine.reg[RES] = getSymbol("equal?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: equal\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 2 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	machine.stack[machine.fp+2] = machine.stack[machine.sp+1] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +3 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 2, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: (equal\? a b)") ;
	FUNCTION_EXIT ("(lambda (b) (equal\? a b))");
	Continue_11782:
	DEBUG_TRACE("end: lambda: (lambda (b) (equal\? a b))") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: var free: ormap") ;
	machine.reg[RES] = getSymbol("ormap") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: ormap") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 2 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	machine.stack[machine.fp+2] = machine.stack[machine.sp+1] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +3 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 2, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: (ormap (lambda (b) (equal\? a b)) s)") ;
	FUNCTION_EXIT ("(lambda (a s) (ormap (lambda (b) (equal\? a b)) s))");
	Continue_11784:
	DEBUG_TRACE("end: lambda: (lambda (a s) (ormap (lambda (b) (equal\? a b)) s))") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("member\?") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define member\? (lambda (a s) (ormap (lambda (b) (equal\? a b)) s)))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_11780:
	
	pushDummyFrame(&&exit_11785) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define negative\? (lambda (n) (< n 0))) **********") ;
	DEBUG_TRACE("start: def: (define negative\? (lambda (n) (< n 0)))") ;
	DEBUG_TRACE("start: lambda: (lambda (n) (< n 0))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_11786 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_11787;
	Closure_Code_11786:
	FUNCTION_ENTER("(lambda (n) (< n 0))");
	RUNTIME_ASSERT(STACK_ARGC() == 1) ;
	DEBUG_TRACE("start: app tp: (< n 0)") ;
	/* Start of Pushing args */
	machine.reg[RES] = makeSchemeInt(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: n") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: n") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: var free: <") ;
	machine.reg[RES] = getSymbol("<") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: <") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 2 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	machine.stack[machine.fp+2] = machine.stack[machine.sp+1] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +3 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 2, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: (< n 0)") ;
	FUNCTION_EXIT ("(lambda (n) (< n 0))");
	Continue_11787:
	DEBUG_TRACE("end: lambda: (lambda (n) (< n 0))") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("negative\?") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define negative\? (lambda (n) (< n 0)))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_11785:
	
	pushDummyFrame(&&exit_11788) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define positive\? (lambda (n) (> n 0))) **********") ;
	DEBUG_TRACE("start: def: (define positive\? (lambda (n) (> n 0)))") ;
	DEBUG_TRACE("start: lambda: (lambda (n) (> n 0))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_11789 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_11790;
	Closure_Code_11789:
	FUNCTION_ENTER("(lambda (n) (> n 0))");
	RUNTIME_ASSERT(STACK_ARGC() == 1) ;
	DEBUG_TRACE("start: app tp: (> n 0)") ;
	/* Start of Pushing args */
	machine.reg[RES] = makeSchemeInt(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: n") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: n") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: var free: >") ;
	machine.reg[RES] = getSymbol(">") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: >") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 2 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	machine.stack[machine.fp+2] = machine.stack[machine.sp+1] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +3 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 2, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: (> n 0)") ;
	FUNCTION_EXIT ("(lambda (n) (> n 0))");
	Continue_11790:
	DEBUG_TRACE("end: lambda: (lambda (n) (> n 0))") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("positive\?") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define positive\? (lambda (n) (> n 0)))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_11788:
	
	pushDummyFrame(&&exit_11791) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define zero\? (lambda (x) (= x 0))) **********") ;
	DEBUG_TRACE("start: def: (define zero\? (lambda (x) (= x 0)))") ;
	DEBUG_TRACE("start: lambda: (lambda (x) (= x 0))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_11792 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_11793;
	Closure_Code_11792:
	FUNCTION_ENTER("(lambda (x) (= x 0))");
	RUNTIME_ASSERT(STACK_ARGC() == 1) ;
	DEBUG_TRACE("start: app tp: (= x 0)") ;
	/* Start of Pushing args */
	machine.reg[RES] = makeSchemeInt(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: x") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: x") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: var free: =") ;
	machine.reg[RES] = getSymbol("=") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: =") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 2 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	machine.stack[machine.fp+2] = machine.stack[machine.sp+1] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +3 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 2, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: (= x 0)") ;
	FUNCTION_EXIT ("(lambda (x) (= x 0))");
	Continue_11793:
	DEBUG_TRACE("end: lambda: (lambda (x) (= x 0))") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("zero\?") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define zero\? (lambda (x) (= x 0)))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_11791:
	
	pushDummyFrame(&&exit_11794) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define number\? integer\?) **********") ;
	DEBUG_TRACE("start: def: (define number\? integer\?)") ;
	DEBUG_TRACE("start: var free: integer\?") ;
	machine.reg[RES] = getSymbol("integer?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: integer\?") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("number\?") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define number\? integer\?)") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_11794:
	
	pushDummyFrame(&&exit_11795) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define vector (lambda args (list->vector args))) **********") ;
	DEBUG_TRACE("start: def: (define vector (lambda args (list->vector args)))") ;
	DEBUG_TRACE("start: lambda opt: (lambda args (list->vector args))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[0]) ;
	machine.reg[1] = makeLocalEnv(STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[0] = extendEnv((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure(machine.reg[0], &&Closure_Code_11796) ;
	goto Continue_11797 ;
	Closure_Code_11796:
	FUNCTION_ENTER("(lambda args (list->vector args))") ;
	RUNTIME_ASSERT(STACK_ARGC() >= 0) ;
	push((void*)machine.reg[0]) ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	push((void*)machine.reg[3]) ;
	/* backups since shifting the frame changes argc */
	machine.reg[1] = (void*)STACK_ARGC() ;
	machine.reg[1] = (void*)((Amount)machine.reg[1] - 0) ; /* amount of optional args */
	machine.reg[3] = (void*)(STACK_FRAME_SIZE()+4) ;
	machine.reg[0] = stackToSchemeList(STACK_ARGS()-0, (Amount)machine.reg[1]) ;
	/* shift_frame_up */
	machine.reg[2] = (void*)(machine.sp) ; /* loop counter */
	shift_frame_up_loop_start_11799:
	if (!((Amount)machine.reg[2] >= machine.sp-(Amount)machine.reg[3]+1)) goto shift_frame_up_loop_end_11800 ;
	machine.stack[(Amount)machine.reg[2]] = machine.stack[(Amount)machine.reg[2]-1] ;
	machine.reg[2] = (void*)((Amount)machine.reg[2] - 1) ; /* step */
	goto shift_frame_up_loop_start_11799 ;
	shift_frame_up_loop_end_11800:
	machine.fp += 1 ;
	goto after_frame_shift_11798 ;
	after_frame_shift_11798:
	machine.sp = machine.fp+4 ;
	machine.stack[machine.fp-4] = machine.stack[machine.fp-4]+1 ; /* fix ARGC, basically, STACK_ARGC() -= ... */
	*(STACK_ARGS()-0) = machine.reg[0] ; /* fix last argument */
	machine.reg[3] = pop() ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("start: app tp: (list->vector args)") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: var param: args") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: args") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: var free: list->vector") ;
	machine.reg[RES] = getSymbol("list->vector") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: list->vector") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 1 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +2 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 1, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: (list->vector args)") ;
	FUNCTION_EXIT("(lambda args (list->vector args))") ;
	Continue_11797:
	machine.reg[0] = pop() ;
	machine.reg[1] = pop() ;
	DEBUG_TRACE("end: lambda opt: (lambda args (list->vector args))") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("vector") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define vector (lambda args (list->vector args)))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_11795:
	
	pushDummyFrame(&&exit_11801) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define ormap (lambda (f s) (if (pair\? s) (or (f (car s)) (ormap f (cdr s))) #f))) **********") ;
	DEBUG_TRACE("start: def: (define ormap (lambda (f s) (if (pair\? s) (or (f (car s)) (ormap f (cdr s))) #f)))") ;
	DEBUG_TRACE("start: lambda: (lambda (f s) (if (pair\? s) (or (f (car s)) (ormap f (cdr s))) #f))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_11809 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_11810;
	Closure_Code_11809:
	FUNCTION_ENTER("(lambda (f s) (if (pair\? s) (or (f (car s)) (ormap f (cdr s))) #f))");
	RUNTIME_ASSERT(STACK_ARGC() == 2) ;
	DEBUG_TRACE("start: if: (if (pair\? s) (or (f (car s)) (ormap f (cdr s))) #f)") ;

	DEBUG_TRACE("start: application: (pair\? s)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: s") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: pair\?") ;
	machine.reg[RES] = getSymbol("pair?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: pair\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_11802) ;
	ret_from_app_11802:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (pair\? s)") ;
	if (sobIsFalse(machine.reg[RES])) goto If_Else_11807;
	DEBUG_NOTICE("branch taken");
	DEBUG_TRACE("start: or: (or (f (car s)) (ormap f (cdr s)))") ;
	DEBUG_TRACE("start: application: (f (car s))") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: application: (car s)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: s") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: car") ;
	machine.reg[RES] = getSymbol("car") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: car") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_11804) ;
	ret_from_app_11804:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (car s)") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var param: f") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: f") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_11805) ;
	ret_from_app_11805:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (f (car s))") ;
	if (sobIsntFalse(machine.reg[RES])) goto or_end_11803 ; /* end the 'or' if true */
	DEBUG_TRACE("start: app tp: (ormap f (cdr s))") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: application: (cdr s)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: s") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: cdr") ;
	machine.reg[RES] = getSymbol("cdr") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: cdr") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_11806) ;
	ret_from_app_11806:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (cdr s)") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: f") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: f") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: var free: ormap") ;
	machine.reg[RES] = getSymbol("ormap") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: ormap") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 2 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	machine.stack[machine.fp+2] = machine.stack[machine.sp+1] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +3 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 2, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: (ormap f (cdr s))") ;
	or_end_11803:
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: or: (or (f (car s)) (ormap f (cdr s)))") ;
	goto If_Done_11808;
	If_Else_11807:
	DEBUG_NOTICE("branch not taken");
	machine.reg[RES] = makeSchemeBool(FALSE);
	If_Done_11808:

	DEBUG_TRACE("end: if: (if (pair\? s) (or (f (car s)) (ormap f (cdr s))) #f)") ;
	FUNCTION_EXIT ("(lambda (f s) (if (pair\? s) (or (f (car s)) (ormap f (cdr s))) #f))");
	Continue_11810:
	DEBUG_TRACE("end: lambda: (lambda (f s) (if (pair\? s) (or (f (car s)) (ormap f (cdr s))) #f))") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("ormap") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define ormap (lambda (f s) (if (pair\? s) (or (f (car s)) (ormap f (cdr s))) #f)))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_11801:
	
	pushDummyFrame(&&exit_11811) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define andmap (lambda (f s) (or (null\? s) (if (f (car s)) (andmap f (cdr s)) #f)))) **********") ;
	DEBUG_TRACE("start: def: (define andmap (lambda (f s) (or (null\? s) (if (f (car s)) (andmap f (cdr s)) #f))))") ;
	DEBUG_TRACE("start: lambda: (lambda (f s) (or (null\? s) (if (f (car s)) (andmap f (cdr s)) #f)))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_11819 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_11820;
	Closure_Code_11819:
	FUNCTION_ENTER("(lambda (f s) (or (null\? s) (if (f (car s)) (andmap f (cdr s)) #f)))");
	RUNTIME_ASSERT(STACK_ARGC() == 2) ;
	DEBUG_TRACE("start: or: (or (null\? s) (if (f (car s)) (andmap f (cdr s)) #f))") ;
	DEBUG_TRACE("start: application: (null\? s)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: s") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: null\?") ;
	machine.reg[RES] = getSymbol("null?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: null\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_11813) ;
	ret_from_app_11813:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (null\? s)") ;
	if (sobIsntFalse(machine.reg[RES])) goto or_end_11812 ; /* end the 'or' if true */
	DEBUG_TRACE("start: if: (if (f (car s)) (andmap f (cdr s)) #f)") ;

	DEBUG_TRACE("start: application: (f (car s))") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: application: (car s)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: s") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: car") ;
	machine.reg[RES] = getSymbol("car") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: car") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_11814) ;
	ret_from_app_11814:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (car s)") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var param: f") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: f") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_11815) ;
	ret_from_app_11815:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (f (car s))") ;
	if (sobIsFalse(machine.reg[RES])) goto If_Else_11817;
	DEBUG_NOTICE("branch taken");
	DEBUG_TRACE("start: app tp: (andmap f (cdr s))") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: application: (cdr s)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: s") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: cdr") ;
	machine.reg[RES] = getSymbol("cdr") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: cdr") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_11816) ;
	ret_from_app_11816:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (cdr s)") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: f") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: f") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: var free: andmap") ;
	machine.reg[RES] = getSymbol("andmap") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: andmap") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 2 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	machine.stack[machine.fp+2] = machine.stack[machine.sp+1] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +3 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 2, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: (andmap f (cdr s))") ;
	goto If_Done_11818;
	If_Else_11817:
	DEBUG_NOTICE("branch not taken");
	machine.reg[RES] = makeSchemeBool(FALSE);
	If_Done_11818:

	DEBUG_TRACE("end: if: (if (f (car s)) (andmap f (cdr s)) #f)") ;
	or_end_11812:
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: or: (or (null\? s) (if (f (car s)) (andmap f (cdr s)) #f))") ;
	FUNCTION_EXIT ("(lambda (f s) (or (null\? s) (if (f (car s)) (andmap f (cdr s)) #f)))");
	Continue_11820:
	DEBUG_TRACE("end: lambda: (lambda (f s) (or (null\? s) (if (f (car s)) (andmap f (cdr s)) #f)))") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("andmap") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define andmap (lambda (f s) (or (null\? s) (if (f (car s)) (andmap f (cdr s)) #f))))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_11811:
	
	pushDummyFrame(&&exit_11821) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define string->list ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (str n s) (if (= n -1) s ((vector-ref loop 0) str (- n 1) (cons (string-ref str n) s))))) ((lambda () (lambda (str) ((vector-ref loop 0) str (- (string-length str) 1) \'())))))) #f)) **********") ;
	DEBUG_TRACE("start: def: (define string->list ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (str n s) (if (= n -1) s ((vector-ref loop 0) str (- n 1) (cons (string-ref str n) s))))) ((lambda () (lambda (str) ((vector-ref loop 0) str (- (string-length str) 1) \'())))))) #f))") ;
	DEBUG_TRACE("start: application: ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (str n s) (if (= n -1) s ((vector-ref loop 0) str (- n 1) (cons (string-ref str n) s))))) ((lambda () (lambda (str) ((vector-ref loop 0) str (- (string-length str) 1) \'())))))) #f)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	machine.reg[RES] = makeSchemeBool(FALSE);
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: lambda: (lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (str n s) (if (= n -1) s ((vector-ref loop 0) str (- n 1) (cons (string-ref str n) s))))) ((lambda () (lambda (str) ((vector-ref loop 0) str (- (string-length str) 1) \'()))))))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_11841 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_11842;
	Closure_Code_11841:
	FUNCTION_ENTER("(lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (str n s) (if (= n -1) s ((vector-ref loop 0) str (- n 1) (cons (string-ref str n) s))))) ((lambda () (lambda (str) ((vector-ref loop 0) str (- (string-length str) 1) \'()))))))");
	RUNTIME_ASSERT(STACK_ARGC() == 1) ;
	DEBUG_TRACE("start: sequence: (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (str n s) (if (= n -1) s ((vector-ref loop 0) str (- n 1) (cons (string-ref str n) s))))) ((lambda () (lambda (str) ((vector-ref loop 0) str (- (string-length str) 1) \'())))))") ;
	/* start new begin statement */
	DEBUG_TRACE("start: set: (set! loop (box loop))") ;
	DEBUG_TRACE("start: application: (box loop)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: loop") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: loop") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: box") ;
	machine.reg[RES] = getSymbol("box") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: box") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_11823) ;
	ret_from_app_11823:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (box loop)") ;
	*(STACK_ARGS()-0) = machine.reg[RES] ;
	machine.reg[RES] = makeSchemeVoid() ;
	DEBUG_TRACE("end: set: (set! loop (box loop))") ;
	/* start new begin statement */
	DEBUG_TRACE("start: application: (vector-set! loop 0 (lambda (str n s) (if (= n -1) s ((vector-ref loop 0) str (- n 1) (cons (string-ref str n) s)))))") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: lambda: (lambda (str n s) (if (= n -1) s ((vector-ref loop 0) str (- n 1) (cons (string-ref str n) s))))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_11831 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_11832;
	Closure_Code_11831:
	FUNCTION_ENTER("(lambda (str n s) (if (= n -1) s ((vector-ref loop 0) str (- n 1) (cons (string-ref str n) s))))");
	RUNTIME_ASSERT(STACK_ARGC() == 3) ;
	DEBUG_TRACE("start: if: (if (= n -1) s ((vector-ref loop 0) str (- n 1) (cons (string-ref str n) s)))") ;

	DEBUG_TRACE("start: application: (= n -1)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	machine.reg[RES] = makeSchemeInt(-1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: n") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: n") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: =") ;
	machine.reg[RES] = getSymbol("=") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: =") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_11824) ;
	ret_from_app_11824:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (= n -1)") ;
	if (sobIsFalse(machine.reg[RES])) goto If_Else_11829;
	DEBUG_NOTICE("branch taken");
	DEBUG_TRACE("start: var param: s") ;
	machine.reg[RES] = STACK_ARGV(2) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s") ;
	goto If_Done_11830;
	If_Else_11829:
	DEBUG_NOTICE("branch not taken");
	DEBUG_TRACE("start: app tp: ((vector-ref loop 0) str (- n 1) (cons (string-ref str n) s))") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: application: (cons (string-ref str n) s)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: s") ;
	machine.reg[RES] = STACK_ARGV(2) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: application: (string-ref str n)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: n") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: n") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: str") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: str") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: string-ref") ;
	machine.reg[RES] = getSymbol("string-ref") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: string-ref") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_11825) ;
	ret_from_app_11825:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (string-ref str n)") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: cons") ;
	machine.reg[RES] = getSymbol("cons") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: cons") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_11826) ;
	ret_from_app_11826:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (cons (string-ref str n) s)") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: application: (- n 1)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	machine.reg[RES] = makeSchemeInt(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: n") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: n") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: -") ;
	machine.reg[RES] = getSymbol("-") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: -") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_11827) ;
	ret_from_app_11827:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (- n 1)") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: str") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: str") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: application: (vector-ref loop 0)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	machine.reg[RES] = makeSchemeInt(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var bound: loop") ;
	machine.reg[RES] = getBoundVar (STACK_ENV(), 0, 0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var bound: loop") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: vector-ref") ;
	machine.reg[RES] = getSymbol("vector-ref") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: vector-ref") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_11828) ;
	ret_from_app_11828:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (vector-ref loop 0)") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 3 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	machine.stack[machine.fp+2] = machine.stack[machine.sp+1] ;
	machine.stack[machine.fp+3] = machine.stack[machine.sp+2] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +4 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 3, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: ((vector-ref loop 0) str (- n 1) (cons (string-ref str n) s))") ;
	If_Done_11830:

	DEBUG_TRACE("end: if: (if (= n -1) s ((vector-ref loop 0) str (- n 1) (cons (string-ref str n) s)))") ;
	FUNCTION_EXIT ("(lambda (str n s) (if (= n -1) s ((vector-ref loop 0) str (- n 1) (cons (string-ref str n) s))))");
	Continue_11832:
	DEBUG_TRACE("end: lambda: (lambda (str n s) (if (= n -1) s ((vector-ref loop 0) str (- n 1) (cons (string-ref str n) s))))") ;
	push((void*)machine.reg[RES]) ;
	machine.reg[RES] = makeSchemeInt(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: loop") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: loop") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: vector-set!") ;
	machine.reg[RES] = getSymbol("vector-set!") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: vector-set!") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 3, machine.reg[1], &&ret_from_app_11833) ;
	ret_from_app_11833:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (vector-set! loop 0 (lambda (str n s) (if (= n -1) s ((vector-ref loop 0) str (- n 1) (cons (string-ref str n) s)))))") ;
	/* start new begin statement */
	DEBUG_TRACE("start: app tp: ((lambda () (lambda (str) ((vector-ref loop 0) str (- (string-length str) 1) \'()))))") ;
	/* Start of Pushing args */
	/* End of Pushing args */
	DEBUG_TRACE("start: lambda: (lambda () (lambda (str) ((vector-ref loop 0) str (- (string-length str) 1) \'())))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_11839 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_11840;
	Closure_Code_11839:
	FUNCTION_ENTER("(lambda () (lambda (str) ((vector-ref loop 0) str (- (string-length str) 1) \'())))");
	RUNTIME_ASSERT(STACK_ARGC() == 0) ;
	DEBUG_TRACE("start: lambda: (lambda (str) ((vector-ref loop 0) str (- (string-length str) 1) \'()))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_11837 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_11838;
	Closure_Code_11837:
	FUNCTION_ENTER("(lambda (str) ((vector-ref loop 0) str (- (string-length str) 1) \'()))");
	RUNTIME_ASSERT(STACK_ARGC() == 1) ;
	DEBUG_TRACE("start: app tp: ((vector-ref loop 0) str (- (string-length str) 1) \'())") ;
	/* Start of Pushing args */
	machine.reg[RES] = schemeNil ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: application: (- (string-length str) 1)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	machine.reg[RES] = makeSchemeInt(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: application: (string-length str)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: str") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: str") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: string-length") ;
	machine.reg[RES] = getSymbol("string-length") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: string-length") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_11834) ;
	ret_from_app_11834:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (string-length str)") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: -") ;
	machine.reg[RES] = getSymbol("-") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: -") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_11835) ;
	ret_from_app_11835:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (- (string-length str) 1)") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: str") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: str") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: application: (vector-ref loop 0)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	machine.reg[RES] = makeSchemeInt(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var bound: loop") ;
	machine.reg[RES] = getBoundVar (STACK_ENV(), 1, 0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var bound: loop") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: vector-ref") ;
	machine.reg[RES] = getSymbol("vector-ref") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: vector-ref") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_11836) ;
	ret_from_app_11836:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (vector-ref loop 0)") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 3 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	machine.stack[machine.fp+2] = machine.stack[machine.sp+1] ;
	machine.stack[machine.fp+3] = machine.stack[machine.sp+2] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +4 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 3, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: ((vector-ref loop 0) str (- (string-length str) 1) \'())") ;
	FUNCTION_EXIT ("(lambda (str) ((vector-ref loop 0) str (- (string-length str) 1) \'()))");
	Continue_11838:
	DEBUG_TRACE("end: lambda: (lambda (str) ((vector-ref loop 0) str (- (string-length str) 1) \'()))") ;
	FUNCTION_EXIT ("(lambda () (lambda (str) ((vector-ref loop 0) str (- (string-length str) 1) \'())))");
	Continue_11840:
	DEBUG_TRACE("end: lambda: (lambda () (lambda (str) ((vector-ref loop 0) str (- (string-length str) 1) \'())))") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 0 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	/* End of overwriting old frame */
	machine.sp = machine.fp +1 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 0, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: ((lambda () (lambda (str) ((vector-ref loop 0) str (- (string-length str) 1) \'()))))") ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: sequence: (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (str n s) (if (= n -1) s ((vector-ref loop 0) str (- n 1) (cons (string-ref str n) s))))) ((lambda () (lambda (str) ((vector-ref loop 0) str (- (string-length str) 1) \'())))))") ;
	FUNCTION_EXIT ("(lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (str n s) (if (= n -1) s ((vector-ref loop 0) str (- n 1) (cons (string-ref str n) s))))) ((lambda () (lambda (str) ((vector-ref loop 0) str (- (string-length str) 1) \'()))))))");
	Continue_11842:
	DEBUG_TRACE("end: lambda: (lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (str n s) (if (= n -1) s ((vector-ref loop 0) str (- n 1) (cons (string-ref str n) s))))) ((lambda () (lambda (str) ((vector-ref loop 0) str (- (string-length str) 1) \'()))))))") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_11822) ;
	ret_from_app_11822:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (str n s) (if (= n -1) s ((vector-ref loop 0) str (- n 1) (cons (string-ref str n) s))))) ((lambda () (lambda (str) ((vector-ref loop 0) str (- (string-length str) 1) \'())))))) #f)") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("string->list") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define string->list ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (str n s) (if (= n -1) s ((vector-ref loop 0) str (- n 1) (cons (string-ref str n) s))))) ((lambda () (lambda (str) ((vector-ref loop 0) str (- (string-length str) 1) \'())))))) #f))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_11821:
	
	pushDummyFrame(&&exit_11843) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define binary-string=\? (lambda (str1 str2) ((lambda (n1 n2) (if (= n1 n2) ((lambda (s1 s2) (map char=\? s1 s2)) (string->list str1) (string->list str2)) #f)) (string-length str1) (string-length str2)))) **********") ;
	DEBUG_TRACE("start: def: (define binary-string=\? (lambda (str1 str2) ((lambda (n1 n2) (if (= n1 n2) ((lambda (s1 s2) (map char=\? s1 s2)) (string->list str1) (string->list str2)) #f)) (string-length str1) (string-length str2))))") ;
	DEBUG_TRACE("start: lambda: (lambda (str1 str2) ((lambda (n1 n2) (if (= n1 n2) ((lambda (s1 s2) (map char=\? s1 s2)) (string->list str1) (string->list str2)) #f)) (string-length str1) (string-length str2)))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_11855 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_11856;
	Closure_Code_11855:
	FUNCTION_ENTER("(lambda (str1 str2) ((lambda (n1 n2) (if (= n1 n2) ((lambda (s1 s2) (map char=\? s1 s2)) (string->list str1) (string->list str2)) #f)) (string-length str1) (string-length str2)))");
	RUNTIME_ASSERT(STACK_ARGC() == 2) ;
	DEBUG_TRACE("start: app tp: ((lambda (n1 n2) (if (= n1 n2) ((lambda (s1 s2) (map char=\? s1 s2)) (string->list str1) (string->list str2)) #f)) (string-length str1) (string-length str2))") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: application: (string-length str2)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: str2") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: str2") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: string-length") ;
	machine.reg[RES] = getSymbol("string-length") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: string-length") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_11844) ;
	ret_from_app_11844:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (string-length str2)") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: application: (string-length str1)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: str1") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: str1") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: string-length") ;
	machine.reg[RES] = getSymbol("string-length") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: string-length") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_11845) ;
	ret_from_app_11845:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (string-length str1)") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: lambda: (lambda (n1 n2) (if (= n1 n2) ((lambda (s1 s2) (map char=\? s1 s2)) (string->list str1) (string->list str2)) #f))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_11853 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_11854;
	Closure_Code_11853:
	FUNCTION_ENTER("(lambda (n1 n2) (if (= n1 n2) ((lambda (s1 s2) (map char=\? s1 s2)) (string->list str1) (string->list str2)) #f))");
	RUNTIME_ASSERT(STACK_ARGC() == 2) ;
	DEBUG_TRACE("start: if: (if (= n1 n2) ((lambda (s1 s2) (map char=\? s1 s2)) (string->list str1) (string->list str2)) #f)") ;

	DEBUG_TRACE("start: application: (= n1 n2)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: n2") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: n2") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: n1") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: n1") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: =") ;
	machine.reg[RES] = getSymbol("=") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: =") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_11846) ;
	ret_from_app_11846:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (= n1 n2)") ;
	if (sobIsFalse(machine.reg[RES])) goto If_Else_11851;
	DEBUG_NOTICE("branch taken");
	DEBUG_TRACE("start: app tp: ((lambda (s1 s2) (map char=\? s1 s2)) (string->list str1) (string->list str2))") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: application: (string->list str2)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var bound: str2") ;
	machine.reg[RES] = getBoundVar (STACK_ENV(), 0, 1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var bound: str2") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: string->list") ;
	machine.reg[RES] = getSymbol("string->list") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: string->list") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_11847) ;
	ret_from_app_11847:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (string->list str2)") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: application: (string->list str1)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var bound: str1") ;
	machine.reg[RES] = getBoundVar (STACK_ENV(), 0, 0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var bound: str1") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: string->list") ;
	machine.reg[RES] = getSymbol("string->list") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: string->list") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_11848) ;
	ret_from_app_11848:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (string->list str1)") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: lambda: (lambda (s1 s2) (map char=\? s1 s2))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_11849 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_11850;
	Closure_Code_11849:
	FUNCTION_ENTER("(lambda (s1 s2) (map char=\? s1 s2))");
	RUNTIME_ASSERT(STACK_ARGC() == 2) ;
	DEBUG_TRACE("start: app tp: (map char=\? s1 s2)") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: var param: s2") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s2") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: s1") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s1") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var free: char=\?") ;
	machine.reg[RES] = getSymbol("char=?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: char=\?") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: var free: map") ;
	machine.reg[RES] = getSymbol("map") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: map") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 3 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	machine.stack[machine.fp+2] = machine.stack[machine.sp+1] ;
	machine.stack[machine.fp+3] = machine.stack[machine.sp+2] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +4 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 3, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: (map char=\? s1 s2)") ;
	FUNCTION_EXIT ("(lambda (s1 s2) (map char=\? s1 s2))");
	Continue_11850:
	DEBUG_TRACE("end: lambda: (lambda (s1 s2) (map char=\? s1 s2))") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 2 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	machine.stack[machine.fp+2] = machine.stack[machine.sp+1] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +3 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 2, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: ((lambda (s1 s2) (map char=\? s1 s2)) (string->list str1) (string->list str2))") ;
	goto If_Done_11852;
	If_Else_11851:
	DEBUG_NOTICE("branch not taken");
	machine.reg[RES] = makeSchemeBool(FALSE);
	If_Done_11852:

	DEBUG_TRACE("end: if: (if (= n1 n2) ((lambda (s1 s2) (map char=\? s1 s2)) (string->list str1) (string->list str2)) #f)") ;
	FUNCTION_EXIT ("(lambda (n1 n2) (if (= n1 n2) ((lambda (s1 s2) (map char=\? s1 s2)) (string->list str1) (string->list str2)) #f))");
	Continue_11854:
	DEBUG_TRACE("end: lambda: (lambda (n1 n2) (if (= n1 n2) ((lambda (s1 s2) (map char=\? s1 s2)) (string->list str1) (string->list str2)) #f))") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 2 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	machine.stack[machine.fp+2] = machine.stack[machine.sp+1] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +3 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 2, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: ((lambda (n1 n2) (if (= n1 n2) ((lambda (s1 s2) (map char=\? s1 s2)) (string->list str1) (string->list str2)) #f)) (string-length str1) (string-length str2))") ;
	FUNCTION_EXIT ("(lambda (str1 str2) ((lambda (n1 n2) (if (= n1 n2) ((lambda (s1 s2) (map char=\? s1 s2)) (string->list str1) (string->list str2)) #f)) (string-length str1) (string-length str2)))");
	Continue_11856:
	DEBUG_TRACE("end: lambda: (lambda (str1 str2) ((lambda (n1 n2) (if (= n1 n2) ((lambda (s1 s2) (map char=\? s1 s2)) (string->list str1) (string->list str2)) #f)) (string-length str1) (string-length str2)))") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("binary-string=\?") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define binary-string=\? (lambda (str1 str2) ((lambda (n1 n2) (if (= n1 n2) ((lambda (s1 s2) (map char=\? s1 s2)) (string->list str1) (string->list str2)) #f)) (string-length str1) (string-length str2))))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_11843:
	
	pushDummyFrame(&&exit_11857) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define binary-string<\? (lambda (str1 str2) ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s1 s2) (if (null\? s1) (pair\? s2) (if (null\? s2) #f (if (char=\? (car s1) (car s2)) ((vector-ref loop 0) (cdr s1) (cdr s2)) (char<\? (car s1) (car s2))))))) ((lambda () ((vector-ref loop 0) (string->list str1) (string->list str2)))))) #f))) **********") ;
	DEBUG_TRACE("start: def: (define binary-string<\? (lambda (str1 str2) ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s1 s2) (if (null\? s1) (pair\? s2) (if (null\? s2) #f (if (char=\? (car s1) (car s2)) ((vector-ref loop 0) (cdr s1) (cdr s2)) (char<\? (car s1) (car s2))))))) ((lambda () ((vector-ref loop 0) (string->list str1) (string->list str2)))))) #f)))") ;
	DEBUG_TRACE("start: lambda: (lambda (str1 str2) ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s1 s2) (if (null\? s1) (pair\? s2) (if (null\? s2) #f (if (char=\? (car s1) (car s2)) ((vector-ref loop 0) (cdr s1) (cdr s2)) (char<\? (car s1) (car s2))))))) ((lambda () ((vector-ref loop 0) (string->list str1) (string->list str2)))))) #f))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_11885 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_11886;
	Closure_Code_11885:
	FUNCTION_ENTER("(lambda (str1 str2) ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s1 s2) (if (null\? s1) (pair\? s2) (if (null\? s2) #f (if (char=\? (car s1) (car s2)) ((vector-ref loop 0) (cdr s1) (cdr s2)) (char<\? (car s1) (car s2))))))) ((lambda () ((vector-ref loop 0) (string->list str1) (string->list str2)))))) #f))");
	RUNTIME_ASSERT(STACK_ARGC() == 2) ;
	DEBUG_TRACE("start: app tp: ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s1 s2) (if (null\? s1) (pair\? s2) (if (null\? s2) #f (if (char=\? (car s1) (car s2)) ((vector-ref loop 0) (cdr s1) (cdr s2)) (char<\? (car s1) (car s2))))))) ((lambda () ((vector-ref loop 0) (string->list str1) (string->list str2)))))) #f)") ;
	/* Start of Pushing args */
	machine.reg[RES] = makeSchemeBool(FALSE);
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: lambda: (lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s1 s2) (if (null\? s1) (pair\? s2) (if (null\? s2) #f (if (char=\? (car s1) (car s2)) ((vector-ref loop 0) (cdr s1) (cdr s2)) (char<\? (car s1) (car s2))))))) ((lambda () ((vector-ref loop 0) (string->list str1) (string->list str2))))))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_11883 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_11884;
	Closure_Code_11883:
	FUNCTION_ENTER("(lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s1 s2) (if (null\? s1) (pair\? s2) (if (null\? s2) #f (if (char=\? (car s1) (car s2)) ((vector-ref loop 0) (cdr s1) (cdr s2)) (char<\? (car s1) (car s2))))))) ((lambda () ((vector-ref loop 0) (string->list str1) (string->list str2))))))");
	RUNTIME_ASSERT(STACK_ARGC() == 1) ;
	DEBUG_TRACE("start: sequence: (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s1 s2) (if (null\? s1) (pair\? s2) (if (null\? s2) #f (if (char=\? (car s1) (car s2)) ((vector-ref loop 0) (cdr s1) (cdr s2)) (char<\? (car s1) (car s2))))))) ((lambda () ((vector-ref loop 0) (string->list str1) (string->list str2)))))") ;
	/* start new begin statement */
	DEBUG_TRACE("start: set: (set! loop (box loop))") ;
	DEBUG_TRACE("start: application: (box loop)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: loop") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: loop") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: box") ;
	machine.reg[RES] = getSymbol("box") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: box") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_11858) ;
	ret_from_app_11858:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (box loop)") ;
	*(STACK_ARGS()-0) = machine.reg[RES] ;
	machine.reg[RES] = makeSchemeVoid() ;
	DEBUG_TRACE("end: set: (set! loop (box loop))") ;
	/* start new begin statement */
	DEBUG_TRACE("start: application: (vector-set! loop 0 (lambda (s1 s2) (if (null\? s1) (pair\? s2) (if (null\? s2) #f (if (char=\? (car s1) (car s2)) ((vector-ref loop 0) (cdr s1) (cdr s2)) (char<\? (car s1) (car s2)))))))") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: lambda: (lambda (s1 s2) (if (null\? s1) (pair\? s2) (if (null\? s2) #f (if (char=\? (car s1) (car s2)) ((vector-ref loop 0) (cdr s1) (cdr s2)) (char<\? (car s1) (car s2))))))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_11875 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_11876;
	Closure_Code_11875:
	FUNCTION_ENTER("(lambda (s1 s2) (if (null\? s1) (pair\? s2) (if (null\? s2) #f (if (char=\? (car s1) (car s2)) ((vector-ref loop 0) (cdr s1) (cdr s2)) (char<\? (car s1) (car s2))))))");
	RUNTIME_ASSERT(STACK_ARGC() == 2) ;
	DEBUG_TRACE("start: if: (if (null\? s1) (pair\? s2) (if (null\? s2) #f (if (char=\? (car s1) (car s2)) ((vector-ref loop 0) (cdr s1) (cdr s2)) (char<\? (car s1) (car s2)))))") ;

	DEBUG_TRACE("start: application: (null\? s1)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: s1") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s1") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: null\?") ;
	machine.reg[RES] = getSymbol("null?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: null\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_11859) ;
	ret_from_app_11859:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (null\? s1)") ;
	if (sobIsFalse(machine.reg[RES])) goto If_Else_11873;
	DEBUG_NOTICE("branch taken");
	DEBUG_TRACE("start: app tp: (pair\? s2)") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: var param: s2") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s2") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: var free: pair\?") ;
	machine.reg[RES] = getSymbol("pair?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: pair\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 1 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +2 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 1, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: (pair\? s2)") ;
	goto If_Done_11874;
	If_Else_11873:
	DEBUG_NOTICE("branch not taken");
	DEBUG_TRACE("start: if: (if (null\? s2) #f (if (char=\? (car s1) (car s2)) ((vector-ref loop 0) (cdr s1) (cdr s2)) (char<\? (car s1) (car s2))))") ;

	DEBUG_TRACE("start: application: (null\? s2)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: s2") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s2") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: null\?") ;
	machine.reg[RES] = getSymbol("null?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: null\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_11860) ;
	ret_from_app_11860:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (null\? s2)") ;
	if (sobIsFalse(machine.reg[RES])) goto If_Else_11871;
	DEBUG_NOTICE("branch taken");
	machine.reg[RES] = makeSchemeBool(FALSE);
	goto If_Done_11872;
	If_Else_11871:
	DEBUG_NOTICE("branch not taken");
	DEBUG_TRACE("start: if: (if (char=\? (car s1) (car s2)) ((vector-ref loop 0) (cdr s1) (cdr s2)) (char<\? (car s1) (car s2)))") ;

	DEBUG_TRACE("start: application: (char=\? (car s1) (car s2))") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: application: (car s2)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: s2") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s2") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: car") ;
	machine.reg[RES] = getSymbol("car") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: car") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_11861) ;
	ret_from_app_11861:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (car s2)") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: application: (car s1)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: s1") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s1") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: car") ;
	machine.reg[RES] = getSymbol("car") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: car") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_11862) ;
	ret_from_app_11862:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (car s1)") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: char=\?") ;
	machine.reg[RES] = getSymbol("char=?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: char=\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_11863) ;
	ret_from_app_11863:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (char=\? (car s1) (car s2))") ;
	if (sobIsFalse(machine.reg[RES])) goto If_Else_11869;
	DEBUG_NOTICE("branch taken");
	DEBUG_TRACE("start: app tp: ((vector-ref loop 0) (cdr s1) (cdr s2))") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: application: (cdr s2)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: s2") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s2") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: cdr") ;
	machine.reg[RES] = getSymbol("cdr") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: cdr") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_11864) ;
	ret_from_app_11864:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (cdr s2)") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: application: (cdr s1)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: s1") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s1") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: cdr") ;
	machine.reg[RES] = getSymbol("cdr") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: cdr") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_11865) ;
	ret_from_app_11865:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (cdr s1)") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: application: (vector-ref loop 0)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	machine.reg[RES] = makeSchemeInt(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var bound: loop") ;
	machine.reg[RES] = getBoundVar (STACK_ENV(), 0, 0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var bound: loop") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: vector-ref") ;
	machine.reg[RES] = getSymbol("vector-ref") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: vector-ref") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_11866) ;
	ret_from_app_11866:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (vector-ref loop 0)") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 2 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	machine.stack[machine.fp+2] = machine.stack[machine.sp+1] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +3 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 2, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: ((vector-ref loop 0) (cdr s1) (cdr s2))") ;
	goto If_Done_11870;
	If_Else_11869:
	DEBUG_NOTICE("branch not taken");
	DEBUG_TRACE("start: app tp: (char<\? (car s1) (car s2))") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: application: (car s2)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: s2") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s2") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: car") ;
	machine.reg[RES] = getSymbol("car") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: car") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_11867) ;
	ret_from_app_11867:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (car s2)") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: application: (car s1)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: s1") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s1") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: car") ;
	machine.reg[RES] = getSymbol("car") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: car") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_11868) ;
	ret_from_app_11868:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (car s1)") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: var free: char<\?") ;
	machine.reg[RES] = getSymbol("char<?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: char<\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 2 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	machine.stack[machine.fp+2] = machine.stack[machine.sp+1] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +3 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 2, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: (char<\? (car s1) (car s2))") ;
	If_Done_11870:

	DEBUG_TRACE("end: if: (if (char=\? (car s1) (car s2)) ((vector-ref loop 0) (cdr s1) (cdr s2)) (char<\? (car s1) (car s2)))") ;
	If_Done_11872:

	DEBUG_TRACE("end: if: (if (null\? s2) #f (if (char=\? (car s1) (car s2)) ((vector-ref loop 0) (cdr s1) (cdr s2)) (char<\? (car s1) (car s2))))") ;
	If_Done_11874:

	DEBUG_TRACE("end: if: (if (null\? s1) (pair\? s2) (if (null\? s2) #f (if (char=\? (car s1) (car s2)) ((vector-ref loop 0) (cdr s1) (cdr s2)) (char<\? (car s1) (car s2)))))") ;
	FUNCTION_EXIT ("(lambda (s1 s2) (if (null\? s1) (pair\? s2) (if (null\? s2) #f (if (char=\? (car s1) (car s2)) ((vector-ref loop 0) (cdr s1) (cdr s2)) (char<\? (car s1) (car s2))))))");
	Continue_11876:
	DEBUG_TRACE("end: lambda: (lambda (s1 s2) (if (null\? s1) (pair\? s2) (if (null\? s2) #f (if (char=\? (car s1) (car s2)) ((vector-ref loop 0) (cdr s1) (cdr s2)) (char<\? (car s1) (car s2))))))") ;
	push((void*)machine.reg[RES]) ;
	machine.reg[RES] = makeSchemeInt(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: loop") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: loop") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: vector-set!") ;
	machine.reg[RES] = getSymbol("vector-set!") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: vector-set!") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 3, machine.reg[1], &&ret_from_app_11877) ;
	ret_from_app_11877:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (vector-set! loop 0 (lambda (s1 s2) (if (null\? s1) (pair\? s2) (if (null\? s2) #f (if (char=\? (car s1) (car s2)) ((vector-ref loop 0) (cdr s1) (cdr s2)) (char<\? (car s1) (car s2)))))))") ;
	/* start new begin statement */
	DEBUG_TRACE("start: app tp: ((lambda () ((vector-ref loop 0) (string->list str1) (string->list str2))))") ;
	/* Start of Pushing args */
	/* End of Pushing args */
	DEBUG_TRACE("start: lambda: (lambda () ((vector-ref loop 0) (string->list str1) (string->list str2)))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_11881 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_11882;
	Closure_Code_11881:
	FUNCTION_ENTER("(lambda () ((vector-ref loop 0) (string->list str1) (string->list str2)))");
	RUNTIME_ASSERT(STACK_ARGC() == 0) ;
	DEBUG_TRACE("start: app tp: ((vector-ref loop 0) (string->list str1) (string->list str2))") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: application: (string->list str2)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var bound: str2") ;
	machine.reg[RES] = getBoundVar (STACK_ENV(), 1, 1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var bound: str2") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: string->list") ;
	machine.reg[RES] = getSymbol("string->list") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: string->list") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_11878) ;
	ret_from_app_11878:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (string->list str2)") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: application: (string->list str1)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var bound: str1") ;
	machine.reg[RES] = getBoundVar (STACK_ENV(), 1, 0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var bound: str1") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: string->list") ;
	machine.reg[RES] = getSymbol("string->list") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: string->list") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_11879) ;
	ret_from_app_11879:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (string->list str1)") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: application: (vector-ref loop 0)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	machine.reg[RES] = makeSchemeInt(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var bound: loop") ;
	machine.reg[RES] = getBoundVar (STACK_ENV(), 0, 0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var bound: loop") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: vector-ref") ;
	machine.reg[RES] = getSymbol("vector-ref") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: vector-ref") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_11880) ;
	ret_from_app_11880:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (vector-ref loop 0)") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 2 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	machine.stack[machine.fp+2] = machine.stack[machine.sp+1] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +3 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 2, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: ((vector-ref loop 0) (string->list str1) (string->list str2))") ;
	FUNCTION_EXIT ("(lambda () ((vector-ref loop 0) (string->list str1) (string->list str2)))");
	Continue_11882:
	DEBUG_TRACE("end: lambda: (lambda () ((vector-ref loop 0) (string->list str1) (string->list str2)))") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 0 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	/* End of overwriting old frame */
	machine.sp = machine.fp +1 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 0, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: ((lambda () ((vector-ref loop 0) (string->list str1) (string->list str2))))") ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: sequence: (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s1 s2) (if (null\? s1) (pair\? s2) (if (null\? s2) #f (if (char=\? (car s1) (car s2)) ((vector-ref loop 0) (cdr s1) (cdr s2)) (char<\? (car s1) (car s2))))))) ((lambda () ((vector-ref loop 0) (string->list str1) (string->list str2)))))") ;
	FUNCTION_EXIT ("(lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s1 s2) (if (null\? s1) (pair\? s2) (if (null\? s2) #f (if (char=\? (car s1) (car s2)) ((vector-ref loop 0) (cdr s1) (cdr s2)) (char<\? (car s1) (car s2))))))) ((lambda () ((vector-ref loop 0) (string->list str1) (string->list str2))))))");
	Continue_11884:
	DEBUG_TRACE("end: lambda: (lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s1 s2) (if (null\? s1) (pair\? s2) (if (null\? s2) #f (if (char=\? (car s1) (car s2)) ((vector-ref loop 0) (cdr s1) (cdr s2)) (char<\? (car s1) (car s2))))))) ((lambda () ((vector-ref loop 0) (string->list str1) (string->list str2))))))") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 1 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +2 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 1, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s1 s2) (if (null\? s1) (pair\? s2) (if (null\? s2) #f (if (char=\? (car s1) (car s2)) ((vector-ref loop 0) (cdr s1) (cdr s2)) (char<\? (car s1) (car s2))))))) ((lambda () ((vector-ref loop 0) (string->list str1) (string->list str2)))))) #f)") ;
	FUNCTION_EXIT ("(lambda (str1 str2) ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s1 s2) (if (null\? s1) (pair\? s2) (if (null\? s2) #f (if (char=\? (car s1) (car s2)) ((vector-ref loop 0) (cdr s1) (cdr s2)) (char<\? (car s1) (car s2))))))) ((lambda () ((vector-ref loop 0) (string->list str1) (string->list str2)))))) #f))");
	Continue_11886:
	DEBUG_TRACE("end: lambda: (lambda (str1 str2) ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s1 s2) (if (null\? s1) (pair\? s2) (if (null\? s2) #f (if (char=\? (car s1) (car s2)) ((vector-ref loop 0) (cdr s1) (cdr s2)) (char<\? (car s1) (car s2))))))) ((lambda () ((vector-ref loop 0) (string->list str1) (string->list str2)))))) #f))") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("binary-string<\?") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define binary-string<\? (lambda (str1 str2) ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s1 s2) (if (null\? s1) (pair\? s2) (if (null\? s2) #f (if (char=\? (car s1) (car s2)) ((vector-ref loop 0) (cdr s1) (cdr s2)) (char<\? (car s1) (car s2))))))) ((lambda () ((vector-ref loop 0) (string->list str1) (string->list str2)))))) #f)))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_11857:
	
	pushDummyFrame(&&exit_11887) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define binary-string>\? (lambda (str1 str2) (binary-string<\? str2 str1))) **********") ;
	DEBUG_TRACE("start: def: (define binary-string>\? (lambda (str1 str2) (binary-string<\? str2 str1)))") ;
	DEBUG_TRACE("start: lambda: (lambda (str1 str2) (binary-string<\? str2 str1))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_11888 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_11889;
	Closure_Code_11888:
	FUNCTION_ENTER("(lambda (str1 str2) (binary-string<\? str2 str1))");
	RUNTIME_ASSERT(STACK_ARGC() == 2) ;
	DEBUG_TRACE("start: app tp: (binary-string<\? str2 str1)") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: var param: str1") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: str1") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: str2") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: str2") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: var free: binary-string<\?") ;
	machine.reg[RES] = getSymbol("binary-string<?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: binary-string<\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 2 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	machine.stack[machine.fp+2] = machine.stack[machine.sp+1] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +3 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 2, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: (binary-string<\? str2 str1)") ;
	FUNCTION_EXIT ("(lambda (str1 str2) (binary-string<\? str2 str1))");
	Continue_11889:
	DEBUG_TRACE("end: lambda: (lambda (str1 str2) (binary-string<\? str2 str1))") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("binary-string>\?") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define binary-string>\? (lambda (str1 str2) (binary-string<\? str2 str1)))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_11887:
	
	pushDummyFrame(&&exit_11890) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define binary-string<=\? (lambda (str1 str2) (not (binary-string>\? str1 str2)))) **********") ;
	DEBUG_TRACE("start: def: (define binary-string<=\? (lambda (str1 str2) (not (binary-string>\? str1 str2))))") ;
	DEBUG_TRACE("start: lambda: (lambda (str1 str2) (not (binary-string>\? str1 str2)))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_11892 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_11893;
	Closure_Code_11892:
	FUNCTION_ENTER("(lambda (str1 str2) (not (binary-string>\? str1 str2)))");
	RUNTIME_ASSERT(STACK_ARGC() == 2) ;
	DEBUG_TRACE("start: app tp: (not (binary-string>\? str1 str2))") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: application: (binary-string>\? str1 str2)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: str2") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: str2") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: str1") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: str1") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: binary-string>\?") ;
	machine.reg[RES] = getSymbol("binary-string>?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: binary-string>\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_11891) ;
	ret_from_app_11891:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (binary-string>\? str1 str2)") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: var free: not") ;
	machine.reg[RES] = getSymbol("not") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: not") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 1 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +2 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 1, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: (not (binary-string>\? str1 str2))") ;
	FUNCTION_EXIT ("(lambda (str1 str2) (not (binary-string>\? str1 str2)))");
	Continue_11893:
	DEBUG_TRACE("end: lambda: (lambda (str1 str2) (not (binary-string>\? str1 str2)))") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("binary-string<=\?") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define binary-string<=\? (lambda (str1 str2) (not (binary-string>\? str1 str2))))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_11890:
	
	pushDummyFrame(&&exit_11894) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define binary-string>=\? (lambda (str1 str2) (not (binary-string<\? str1 str2)))) **********") ;
	DEBUG_TRACE("start: def: (define binary-string>=\? (lambda (str1 str2) (not (binary-string<\? str1 str2))))") ;
	DEBUG_TRACE("start: lambda: (lambda (str1 str2) (not (binary-string<\? str1 str2)))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_11896 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_11897;
	Closure_Code_11896:
	FUNCTION_ENTER("(lambda (str1 str2) (not (binary-string<\? str1 str2)))");
	RUNTIME_ASSERT(STACK_ARGC() == 2) ;
	DEBUG_TRACE("start: app tp: (not (binary-string<\? str1 str2))") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: application: (binary-string<\? str1 str2)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: str2") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: str2") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: str1") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: str1") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: binary-string<\?") ;
	machine.reg[RES] = getSymbol("binary-string<?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: binary-string<\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_11895) ;
	ret_from_app_11895:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (binary-string<\? str1 str2)") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: var free: not") ;
	machine.reg[RES] = getSymbol("not") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: not") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 1 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +2 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 1, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: (not (binary-string<\? str1 str2))") ;
	FUNCTION_EXIT ("(lambda (str1 str2) (not (binary-string<\? str1 str2)))");
	Continue_11897:
	DEBUG_TRACE("end: lambda: (lambda (str1 str2) (not (binary-string<\? str1 str2)))") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("binary-string>=\?") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define binary-string>=\? (lambda (str1 str2) (not (binary-string<\? str1 str2))))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_11894:
	
	pushDummyFrame(&&exit_11898) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define string=\? (order binary-string=\?)) **********") ;
	DEBUG_TRACE("start: def: (define string=\? (order binary-string=\?))") ;
	DEBUG_TRACE("start: application: (order binary-string=\?)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var free: binary-string=\?") ;
	machine.reg[RES] = getSymbol("binary-string=?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: binary-string=\?") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: order") ;
	machine.reg[RES] = getSymbol("order") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: order") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_11899) ;
	ret_from_app_11899:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (order binary-string=\?)") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("string=\?") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define string=\? (order binary-string=\?))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_11898:
	
	pushDummyFrame(&&exit_11900) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define string<\? (order binary-string<\?)) **********") ;
	DEBUG_TRACE("start: def: (define string<\? (order binary-string<\?))") ;
	DEBUG_TRACE("start: application: (order binary-string<\?)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var free: binary-string<\?") ;
	machine.reg[RES] = getSymbol("binary-string<?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: binary-string<\?") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: order") ;
	machine.reg[RES] = getSymbol("order") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: order") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_11901) ;
	ret_from_app_11901:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (order binary-string<\?)") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("string<\?") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define string<\? (order binary-string<\?))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_11900:
	
	pushDummyFrame(&&exit_11902) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define string>\? (order binary-string>\?)) **********") ;
	DEBUG_TRACE("start: def: (define string>\? (order binary-string>\?))") ;
	DEBUG_TRACE("start: application: (order binary-string>\?)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var free: binary-string>\?") ;
	machine.reg[RES] = getSymbol("binary-string>?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: binary-string>\?") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: order") ;
	machine.reg[RES] = getSymbol("order") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: order") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_11903) ;
	ret_from_app_11903:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (order binary-string>\?)") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("string>\?") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define string>\? (order binary-string>\?))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_11902:
	
	pushDummyFrame(&&exit_11904) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define string<=\? (order binary-string<=\?)) **********") ;
	DEBUG_TRACE("start: def: (define string<=\? (order binary-string<=\?))") ;
	DEBUG_TRACE("start: application: (order binary-string<=\?)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var free: binary-string<=\?") ;
	machine.reg[RES] = getSymbol("binary-string<=?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: binary-string<=\?") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: order") ;
	machine.reg[RES] = getSymbol("order") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: order") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_11905) ;
	ret_from_app_11905:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (order binary-string<=\?)") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("string<=\?") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define string<=\? (order binary-string<=\?))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_11904:
	
	pushDummyFrame(&&exit_11906) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define string>=\? (order binary-string>=\?)) **********") ;
	DEBUG_TRACE("start: def: (define string>=\? (order binary-string>=\?))") ;
	DEBUG_TRACE("start: application: (order binary-string>=\?)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var free: binary-string>=\?") ;
	machine.reg[RES] = getSymbol("binary-string>=?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: binary-string>=\?") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: order") ;
	machine.reg[RES] = getSymbol("order") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: order") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_11907) ;
	ret_from_app_11907:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (order binary-string>=\?)") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("string>=\?") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define string>=\? (order binary-string>=\?))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_11906:
	
	pushDummyFrame(&&exit_11908) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define vector->list ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (v n s) (if (= n -1) s ((vector-ref loop 0) v (- n 1) (cons (vector-ref v n) s))))) ((lambda () (lambda (v) ((vector-ref loop 0) v (- (vector-length v) 1) \'())))))) #f)) **********") ;
	DEBUG_TRACE("start: def: (define vector->list ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (v n s) (if (= n -1) s ((vector-ref loop 0) v (- n 1) (cons (vector-ref v n) s))))) ((lambda () (lambda (v) ((vector-ref loop 0) v (- (vector-length v) 1) \'())))))) #f))") ;
	DEBUG_TRACE("start: application: ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (v n s) (if (= n -1) s ((vector-ref loop 0) v (- n 1) (cons (vector-ref v n) s))))) ((lambda () (lambda (v) ((vector-ref loop 0) v (- (vector-length v) 1) \'())))))) #f)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	machine.reg[RES] = makeSchemeBool(FALSE);
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: lambda: (lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (v n s) (if (= n -1) s ((vector-ref loop 0) v (- n 1) (cons (vector-ref v n) s))))) ((lambda () (lambda (v) ((vector-ref loop 0) v (- (vector-length v) 1) \'()))))))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_11928 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_11929;
	Closure_Code_11928:
	FUNCTION_ENTER("(lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (v n s) (if (= n -1) s ((vector-ref loop 0) v (- n 1) (cons (vector-ref v n) s))))) ((lambda () (lambda (v) ((vector-ref loop 0) v (- (vector-length v) 1) \'()))))))");
	RUNTIME_ASSERT(STACK_ARGC() == 1) ;
	DEBUG_TRACE("start: sequence: (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (v n s) (if (= n -1) s ((vector-ref loop 0) v (- n 1) (cons (vector-ref v n) s))))) ((lambda () (lambda (v) ((vector-ref loop 0) v (- (vector-length v) 1) \'())))))") ;
	/* start new begin statement */
	DEBUG_TRACE("start: set: (set! loop (box loop))") ;
	DEBUG_TRACE("start: application: (box loop)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: loop") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: loop") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: box") ;
	machine.reg[RES] = getSymbol("box") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: box") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_11910) ;
	ret_from_app_11910:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (box loop)") ;
	*(STACK_ARGS()-0) = machine.reg[RES] ;
	machine.reg[RES] = makeSchemeVoid() ;
	DEBUG_TRACE("end: set: (set! loop (box loop))") ;
	/* start new begin statement */
	DEBUG_TRACE("start: application: (vector-set! loop 0 (lambda (v n s) (if (= n -1) s ((vector-ref loop 0) v (- n 1) (cons (vector-ref v n) s)))))") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: lambda: (lambda (v n s) (if (= n -1) s ((vector-ref loop 0) v (- n 1) (cons (vector-ref v n) s))))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_11918 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_11919;
	Closure_Code_11918:
	FUNCTION_ENTER("(lambda (v n s) (if (= n -1) s ((vector-ref loop 0) v (- n 1) (cons (vector-ref v n) s))))");
	RUNTIME_ASSERT(STACK_ARGC() == 3) ;
	DEBUG_TRACE("start: if: (if (= n -1) s ((vector-ref loop 0) v (- n 1) (cons (vector-ref v n) s)))") ;

	DEBUG_TRACE("start: application: (= n -1)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	machine.reg[RES] = makeSchemeInt(-1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: n") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: n") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: =") ;
	machine.reg[RES] = getSymbol("=") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: =") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_11911) ;
	ret_from_app_11911:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (= n -1)") ;
	if (sobIsFalse(machine.reg[RES])) goto If_Else_11916;
	DEBUG_NOTICE("branch taken");
	DEBUG_TRACE("start: var param: s") ;
	machine.reg[RES] = STACK_ARGV(2) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s") ;
	goto If_Done_11917;
	If_Else_11916:
	DEBUG_NOTICE("branch not taken");
	DEBUG_TRACE("start: app tp: ((vector-ref loop 0) v (- n 1) (cons (vector-ref v n) s))") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: application: (cons (vector-ref v n) s)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: s") ;
	machine.reg[RES] = STACK_ARGV(2) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: application: (vector-ref v n)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: n") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: n") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: v") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: v") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: vector-ref") ;
	machine.reg[RES] = getSymbol("vector-ref") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: vector-ref") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_11912) ;
	ret_from_app_11912:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (vector-ref v n)") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: cons") ;
	machine.reg[RES] = getSymbol("cons") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: cons") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_11913) ;
	ret_from_app_11913:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (cons (vector-ref v n) s)") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: application: (- n 1)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	machine.reg[RES] = makeSchemeInt(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: n") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: n") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: -") ;
	machine.reg[RES] = getSymbol("-") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: -") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_11914) ;
	ret_from_app_11914:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (- n 1)") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: v") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: v") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: application: (vector-ref loop 0)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	machine.reg[RES] = makeSchemeInt(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var bound: loop") ;
	machine.reg[RES] = getBoundVar (STACK_ENV(), 0, 0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var bound: loop") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: vector-ref") ;
	machine.reg[RES] = getSymbol("vector-ref") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: vector-ref") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_11915) ;
	ret_from_app_11915:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (vector-ref loop 0)") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 3 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	machine.stack[machine.fp+2] = machine.stack[machine.sp+1] ;
	machine.stack[machine.fp+3] = machine.stack[machine.sp+2] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +4 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 3, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: ((vector-ref loop 0) v (- n 1) (cons (vector-ref v n) s))") ;
	If_Done_11917:

	DEBUG_TRACE("end: if: (if (= n -1) s ((vector-ref loop 0) v (- n 1) (cons (vector-ref v n) s)))") ;
	FUNCTION_EXIT ("(lambda (v n s) (if (= n -1) s ((vector-ref loop 0) v (- n 1) (cons (vector-ref v n) s))))");
	Continue_11919:
	DEBUG_TRACE("end: lambda: (lambda (v n s) (if (= n -1) s ((vector-ref loop 0) v (- n 1) (cons (vector-ref v n) s))))") ;
	push((void*)machine.reg[RES]) ;
	machine.reg[RES] = makeSchemeInt(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: loop") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: loop") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: vector-set!") ;
	machine.reg[RES] = getSymbol("vector-set!") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: vector-set!") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 3, machine.reg[1], &&ret_from_app_11920) ;
	ret_from_app_11920:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (vector-set! loop 0 (lambda (v n s) (if (= n -1) s ((vector-ref loop 0) v (- n 1) (cons (vector-ref v n) s)))))") ;
	/* start new begin statement */
	DEBUG_TRACE("start: app tp: ((lambda () (lambda (v) ((vector-ref loop 0) v (- (vector-length v) 1) \'()))))") ;
	/* Start of Pushing args */
	/* End of Pushing args */
	DEBUG_TRACE("start: lambda: (lambda () (lambda (v) ((vector-ref loop 0) v (- (vector-length v) 1) \'())))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_11926 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_11927;
	Closure_Code_11926:
	FUNCTION_ENTER("(lambda () (lambda (v) ((vector-ref loop 0) v (- (vector-length v) 1) \'())))");
	RUNTIME_ASSERT(STACK_ARGC() == 0) ;
	DEBUG_TRACE("start: lambda: (lambda (v) ((vector-ref loop 0) v (- (vector-length v) 1) \'()))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_11924 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_11925;
	Closure_Code_11924:
	FUNCTION_ENTER("(lambda (v) ((vector-ref loop 0) v (- (vector-length v) 1) \'()))");
	RUNTIME_ASSERT(STACK_ARGC() == 1) ;
	DEBUG_TRACE("start: app tp: ((vector-ref loop 0) v (- (vector-length v) 1) \'())") ;
	/* Start of Pushing args */
	machine.reg[RES] = schemeNil ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: application: (- (vector-length v) 1)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	machine.reg[RES] = makeSchemeInt(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: application: (vector-length v)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: v") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: v") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: vector-length") ;
	machine.reg[RES] = getSymbol("vector-length") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: vector-length") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_11921) ;
	ret_from_app_11921:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (vector-length v)") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: -") ;
	machine.reg[RES] = getSymbol("-") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: -") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_11922) ;
	ret_from_app_11922:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (- (vector-length v) 1)") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: v") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: v") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: application: (vector-ref loop 0)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	machine.reg[RES] = makeSchemeInt(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var bound: loop") ;
	machine.reg[RES] = getBoundVar (STACK_ENV(), 1, 0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var bound: loop") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: vector-ref") ;
	machine.reg[RES] = getSymbol("vector-ref") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: vector-ref") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_11923) ;
	ret_from_app_11923:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (vector-ref loop 0)") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 3 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	machine.stack[machine.fp+2] = machine.stack[machine.sp+1] ;
	machine.stack[machine.fp+3] = machine.stack[machine.sp+2] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +4 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 3, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: ((vector-ref loop 0) v (- (vector-length v) 1) \'())") ;
	FUNCTION_EXIT ("(lambda (v) ((vector-ref loop 0) v (- (vector-length v) 1) \'()))");
	Continue_11925:
	DEBUG_TRACE("end: lambda: (lambda (v) ((vector-ref loop 0) v (- (vector-length v) 1) \'()))") ;
	FUNCTION_EXIT ("(lambda () (lambda (v) ((vector-ref loop 0) v (- (vector-length v) 1) \'())))");
	Continue_11927:
	DEBUG_TRACE("end: lambda: (lambda () (lambda (v) ((vector-ref loop 0) v (- (vector-length v) 1) \'())))") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 0 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	/* End of overwriting old frame */
	machine.sp = machine.fp +1 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 0, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: ((lambda () (lambda (v) ((vector-ref loop 0) v (- (vector-length v) 1) \'()))))") ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: sequence: (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (v n s) (if (= n -1) s ((vector-ref loop 0) v (- n 1) (cons (vector-ref v n) s))))) ((lambda () (lambda (v) ((vector-ref loop 0) v (- (vector-length v) 1) \'())))))") ;
	FUNCTION_EXIT ("(lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (v n s) (if (= n -1) s ((vector-ref loop 0) v (- n 1) (cons (vector-ref v n) s))))) ((lambda () (lambda (v) ((vector-ref loop 0) v (- (vector-length v) 1) \'()))))))");
	Continue_11929:
	DEBUG_TRACE("end: lambda: (lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (v n s) (if (= n -1) s ((vector-ref loop 0) v (- n 1) (cons (vector-ref v n) s))))) ((lambda () (lambda (v) ((vector-ref loop 0) v (- (vector-length v) 1) \'()))))))") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_11909) ;
	ret_from_app_11909:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (v n s) (if (= n -1) s ((vector-ref loop 0) v (- n 1) (cons (vector-ref v n) s))))) ((lambda () (lambda (v) ((vector-ref loop 0) v (- (vector-length v) 1) \'())))))) #f)") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("vector->list") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define vector->list ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (v n s) (if (= n -1) s ((vector-ref loop 0) v (- n 1) (cons (vector-ref v n) s))))) ((lambda () (lambda (v) ((vector-ref loop 0) v (- (vector-length v) 1) \'())))))) #f))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_11908:
	
	pushDummyFrame(&&exit_11930) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define list->string (lambda (s) ((lambda (n) ((lambda (str) ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s i) (if (= i n) str (begin (string-set! str i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1)))))) ((lambda () ((vector-ref loop 0) s 0))))) #f)) (make-string n))) (length s)))) **********") ;
	DEBUG_TRACE("start: def: (define list->string (lambda (s) ((lambda (n) ((lambda (str) ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s i) (if (= i n) str (begin (string-set! str i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1)))))) ((lambda () ((vector-ref loop 0) s 0))))) #f)) (make-string n))) (length s))))") ;
	DEBUG_TRACE("start: lambda: (lambda (s) ((lambda (n) ((lambda (str) ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s i) (if (= i n) str (begin (string-set! str i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1)))))) ((lambda () ((vector-ref loop 0) s 0))))) #f)) (make-string n))) (length s)))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_11954 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_11955;
	Closure_Code_11954:
	FUNCTION_ENTER("(lambda (s) ((lambda (n) ((lambda (str) ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s i) (if (= i n) str (begin (string-set! str i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1)))))) ((lambda () ((vector-ref loop 0) s 0))))) #f)) (make-string n))) (length s)))");
	RUNTIME_ASSERT(STACK_ARGC() == 1) ;
	DEBUG_TRACE("start: app tp: ((lambda (n) ((lambda (str) ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s i) (if (= i n) str (begin (string-set! str i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1)))))) ((lambda () ((vector-ref loop 0) s 0))))) #f)) (make-string n))) (length s))") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: application: (length s)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: s") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: length") ;
	machine.reg[RES] = getSymbol("length") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: length") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_11931) ;
	ret_from_app_11931:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (length s)") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: lambda: (lambda (n) ((lambda (str) ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s i) (if (= i n) str (begin (string-set! str i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1)))))) ((lambda () ((vector-ref loop 0) s 0))))) #f)) (make-string n)))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_11952 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_11953;
	Closure_Code_11952:
	FUNCTION_ENTER("(lambda (n) ((lambda (str) ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s i) (if (= i n) str (begin (string-set! str i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1)))))) ((lambda () ((vector-ref loop 0) s 0))))) #f)) (make-string n)))");
	RUNTIME_ASSERT(STACK_ARGC() == 1) ;
	DEBUG_TRACE("start: app tp: ((lambda (str) ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s i) (if (= i n) str (begin (string-set! str i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1)))))) ((lambda () ((vector-ref loop 0) s 0))))) #f)) (make-string n))") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: application: (make-string n)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: n") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: n") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: make-string") ;
	machine.reg[RES] = getSymbol("make-string") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: make-string") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_11932) ;
	ret_from_app_11932:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (make-string n)") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: lambda: (lambda (str) ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s i) (if (= i n) str (begin (string-set! str i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1)))))) ((lambda () ((vector-ref loop 0) s 0))))) #f))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_11950 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_11951;
	Closure_Code_11950:
	FUNCTION_ENTER("(lambda (str) ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s i) (if (= i n) str (begin (string-set! str i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1)))))) ((lambda () ((vector-ref loop 0) s 0))))) #f))");
	RUNTIME_ASSERT(STACK_ARGC() == 1) ;
	DEBUG_TRACE("start: app tp: ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s i) (if (= i n) str (begin (string-set! str i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1)))))) ((lambda () ((vector-ref loop 0) s 0))))) #f)") ;
	/* Start of Pushing args */
	machine.reg[RES] = makeSchemeBool(FALSE);
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: lambda: (lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s i) (if (= i n) str (begin (string-set! str i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1)))))) ((lambda () ((vector-ref loop 0) s 0)))))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_11948 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_11949;
	Closure_Code_11948:
	FUNCTION_ENTER("(lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s i) (if (= i n) str (begin (string-set! str i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1)))))) ((lambda () ((vector-ref loop 0) s 0)))))");
	RUNTIME_ASSERT(STACK_ARGC() == 1) ;
	DEBUG_TRACE("start: sequence: (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s i) (if (= i n) str (begin (string-set! str i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1)))))) ((lambda () ((vector-ref loop 0) s 0))))") ;
	/* start new begin statement */
	DEBUG_TRACE("start: set: (set! loop (box loop))") ;
	DEBUG_TRACE("start: application: (box loop)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: loop") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: loop") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: box") ;
	machine.reg[RES] = getSymbol("box") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: box") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_11933) ;
	ret_from_app_11933:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (box loop)") ;
	*(STACK_ARGS()-0) = machine.reg[RES] ;
	machine.reg[RES] = makeSchemeVoid() ;
	DEBUG_TRACE("end: set: (set! loop (box loop))") ;
	/* start new begin statement */
	DEBUG_TRACE("start: application: (vector-set! loop 0 (lambda (s i) (if (= i n) str (begin (string-set! str i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1))))))") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: lambda: (lambda (s i) (if (= i n) str (begin (string-set! str i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1)))))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_11942 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_11943;
	Closure_Code_11942:
	FUNCTION_ENTER("(lambda (s i) (if (= i n) str (begin (string-set! str i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1)))))");
	RUNTIME_ASSERT(STACK_ARGC() == 2) ;
	DEBUG_TRACE("start: if: (if (= i n) str (begin (string-set! str i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1))))") ;

	DEBUG_TRACE("start: application: (= i n)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var bound: n") ;
	machine.reg[RES] = getBoundVar (STACK_ENV(), 2, 0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var bound: n") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: i") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: i") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: =") ;
	machine.reg[RES] = getSymbol("=") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: =") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_11934) ;
	ret_from_app_11934:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (= i n)") ;
	if (sobIsFalse(machine.reg[RES])) goto If_Else_11940;
	DEBUG_NOTICE("branch taken");
	DEBUG_TRACE("start: var bound: str") ;
	machine.reg[RES] = getBoundVar (STACK_ENV(), 1, 0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var bound: str") ;
	goto If_Done_11941;
	If_Else_11940:
	DEBUG_NOTICE("branch not taken");
	DEBUG_TRACE("start: sequence: (begin (string-set! str i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1)))") ;
	/* start new begin statement */
	DEBUG_TRACE("start: application: (string-set! str i (car s))") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: application: (car s)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: s") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: car") ;
	machine.reg[RES] = getSymbol("car") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: car") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_11935) ;
	ret_from_app_11935:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (car s)") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: i") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: i") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var bound: str") ;
	machine.reg[RES] = getBoundVar (STACK_ENV(), 1, 0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var bound: str") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: string-set!") ;
	machine.reg[RES] = getSymbol("string-set!") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: string-set!") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 3, machine.reg[1], &&ret_from_app_11936) ;
	ret_from_app_11936:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (string-set! str i (car s))") ;
	/* start new begin statement */
	DEBUG_TRACE("start: app tp: ((vector-ref loop 0) (cdr s) (+ i 1))") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: application: (+ i 1)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	machine.reg[RES] = makeSchemeInt(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: i") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: i") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: +") ;
	machine.reg[RES] = getSymbol("+") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: +") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_11937) ;
	ret_from_app_11937:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (+ i 1)") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: application: (cdr s)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: s") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: cdr") ;
	machine.reg[RES] = getSymbol("cdr") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: cdr") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_11938) ;
	ret_from_app_11938:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (cdr s)") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: application: (vector-ref loop 0)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	machine.reg[RES] = makeSchemeInt(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var bound: loop") ;
	machine.reg[RES] = getBoundVar (STACK_ENV(), 0, 0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var bound: loop") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: vector-ref") ;
	machine.reg[RES] = getSymbol("vector-ref") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: vector-ref") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_11939) ;
	ret_from_app_11939:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (vector-ref loop 0)") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 2 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	machine.stack[machine.fp+2] = machine.stack[machine.sp+1] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +3 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 2, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: ((vector-ref loop 0) (cdr s) (+ i 1))") ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: sequence: (begin (string-set! str i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1)))") ;
	If_Done_11941:

	DEBUG_TRACE("end: if: (if (= i n) str (begin (string-set! str i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1))))") ;
	FUNCTION_EXIT ("(lambda (s i) (if (= i n) str (begin (string-set! str i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1)))))");
	Continue_11943:
	DEBUG_TRACE("end: lambda: (lambda (s i) (if (= i n) str (begin (string-set! str i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1)))))") ;
	push((void*)machine.reg[RES]) ;
	machine.reg[RES] = makeSchemeInt(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: loop") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: loop") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: vector-set!") ;
	machine.reg[RES] = getSymbol("vector-set!") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: vector-set!") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 3, machine.reg[1], &&ret_from_app_11944) ;
	ret_from_app_11944:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (vector-set! loop 0 (lambda (s i) (if (= i n) str (begin (string-set! str i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1))))))") ;
	/* start new begin statement */
	DEBUG_TRACE("start: app tp: ((lambda () ((vector-ref loop 0) s 0)))") ;
	/* Start of Pushing args */
	/* End of Pushing args */
	DEBUG_TRACE("start: lambda: (lambda () ((vector-ref loop 0) s 0))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_11946 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_11947;
	Closure_Code_11946:
	FUNCTION_ENTER("(lambda () ((vector-ref loop 0) s 0))");
	RUNTIME_ASSERT(STACK_ARGC() == 0) ;
	DEBUG_TRACE("start: app tp: ((vector-ref loop 0) s 0)") ;
	/* Start of Pushing args */
	machine.reg[RES] = makeSchemeInt(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var bound: s") ;
	machine.reg[RES] = getBoundVar (STACK_ENV(), 3, 0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var bound: s") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: application: (vector-ref loop 0)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	machine.reg[RES] = makeSchemeInt(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var bound: loop") ;
	machine.reg[RES] = getBoundVar (STACK_ENV(), 0, 0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var bound: loop") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: vector-ref") ;
	machine.reg[RES] = getSymbol("vector-ref") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: vector-ref") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_11945) ;
	ret_from_app_11945:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (vector-ref loop 0)") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 2 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	machine.stack[machine.fp+2] = machine.stack[machine.sp+1] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +3 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 2, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: ((vector-ref loop 0) s 0)") ;
	FUNCTION_EXIT ("(lambda () ((vector-ref loop 0) s 0))");
	Continue_11947:
	DEBUG_TRACE("end: lambda: (lambda () ((vector-ref loop 0) s 0))") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 0 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	/* End of overwriting old frame */
	machine.sp = machine.fp +1 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 0, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: ((lambda () ((vector-ref loop 0) s 0)))") ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: sequence: (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s i) (if (= i n) str (begin (string-set! str i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1)))))) ((lambda () ((vector-ref loop 0) s 0))))") ;
	FUNCTION_EXIT ("(lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s i) (if (= i n) str (begin (string-set! str i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1)))))) ((lambda () ((vector-ref loop 0) s 0)))))");
	Continue_11949:
	DEBUG_TRACE("end: lambda: (lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s i) (if (= i n) str (begin (string-set! str i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1)))))) ((lambda () ((vector-ref loop 0) s 0)))))") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 1 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +2 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 1, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s i) (if (= i n) str (begin (string-set! str i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1)))))) ((lambda () ((vector-ref loop 0) s 0))))) #f)") ;
	FUNCTION_EXIT ("(lambda (str) ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s i) (if (= i n) str (begin (string-set! str i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1)))))) ((lambda () ((vector-ref loop 0) s 0))))) #f))");
	Continue_11951:
	DEBUG_TRACE("end: lambda: (lambda (str) ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s i) (if (= i n) str (begin (string-set! str i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1)))))) ((lambda () ((vector-ref loop 0) s 0))))) #f))") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 1 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +2 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 1, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: ((lambda (str) ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s i) (if (= i n) str (begin (string-set! str i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1)))))) ((lambda () ((vector-ref loop 0) s 0))))) #f)) (make-string n))") ;
	FUNCTION_EXIT ("(lambda (n) ((lambda (str) ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s i) (if (= i n) str (begin (string-set! str i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1)))))) ((lambda () ((vector-ref loop 0) s 0))))) #f)) (make-string n)))");
	Continue_11953:
	DEBUG_TRACE("end: lambda: (lambda (n) ((lambda (str) ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s i) (if (= i n) str (begin (string-set! str i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1)))))) ((lambda () ((vector-ref loop 0) s 0))))) #f)) (make-string n)))") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 1 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +2 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 1, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: ((lambda (n) ((lambda (str) ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s i) (if (= i n) str (begin (string-set! str i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1)))))) ((lambda () ((vector-ref loop 0) s 0))))) #f)) (make-string n))) (length s))") ;
	FUNCTION_EXIT ("(lambda (s) ((lambda (n) ((lambda (str) ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s i) (if (= i n) str (begin (string-set! str i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1)))))) ((lambda () ((vector-ref loop 0) s 0))))) #f)) (make-string n))) (length s)))");
	Continue_11955:
	DEBUG_TRACE("end: lambda: (lambda (s) ((lambda (n) ((lambda (str) ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s i) (if (= i n) str (begin (string-set! str i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1)))))) ((lambda () ((vector-ref loop 0) s 0))))) #f)) (make-string n))) (length s)))") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("list->string") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define list->string (lambda (s) ((lambda (n) ((lambda (str) ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s i) (if (= i n) str (begin (string-set! str i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1)))))) ((lambda () ((vector-ref loop 0) s 0))))) #f)) (make-string n))) (length s))))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_11930:
	
	pushDummyFrame(&&exit_11956) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define list->vector (lambda (s) ((lambda (n) ((lambda (v) ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s i) (if (= i n) v (begin (vector-set! v i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1)))))) ((lambda () ((vector-ref loop 0) s 0))))) #f)) (make-vector n))) (length s)))) **********") ;
	DEBUG_TRACE("start: def: (define list->vector (lambda (s) ((lambda (n) ((lambda (v) ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s i) (if (= i n) v (begin (vector-set! v i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1)))))) ((lambda () ((vector-ref loop 0) s 0))))) #f)) (make-vector n))) (length s))))") ;
	DEBUG_TRACE("start: lambda: (lambda (s) ((lambda (n) ((lambda (v) ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s i) (if (= i n) v (begin (vector-set! v i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1)))))) ((lambda () ((vector-ref loop 0) s 0))))) #f)) (make-vector n))) (length s)))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_11980 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_11981;
	Closure_Code_11980:
	FUNCTION_ENTER("(lambda (s) ((lambda (n) ((lambda (v) ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s i) (if (= i n) v (begin (vector-set! v i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1)))))) ((lambda () ((vector-ref loop 0) s 0))))) #f)) (make-vector n))) (length s)))");
	RUNTIME_ASSERT(STACK_ARGC() == 1) ;
	DEBUG_TRACE("start: app tp: ((lambda (n) ((lambda (v) ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s i) (if (= i n) v (begin (vector-set! v i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1)))))) ((lambda () ((vector-ref loop 0) s 0))))) #f)) (make-vector n))) (length s))") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: application: (length s)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: s") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: length") ;
	machine.reg[RES] = getSymbol("length") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: length") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_11957) ;
	ret_from_app_11957:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (length s)") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: lambda: (lambda (n) ((lambda (v) ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s i) (if (= i n) v (begin (vector-set! v i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1)))))) ((lambda () ((vector-ref loop 0) s 0))))) #f)) (make-vector n)))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_11978 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_11979;
	Closure_Code_11978:
	FUNCTION_ENTER("(lambda (n) ((lambda (v) ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s i) (if (= i n) v (begin (vector-set! v i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1)))))) ((lambda () ((vector-ref loop 0) s 0))))) #f)) (make-vector n)))");
	RUNTIME_ASSERT(STACK_ARGC() == 1) ;
	DEBUG_TRACE("start: app tp: ((lambda (v) ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s i) (if (= i n) v (begin (vector-set! v i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1)))))) ((lambda () ((vector-ref loop 0) s 0))))) #f)) (make-vector n))") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: application: (make-vector n)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: n") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: n") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: make-vector") ;
	machine.reg[RES] = getSymbol("make-vector") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: make-vector") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_11958) ;
	ret_from_app_11958:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (make-vector n)") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: lambda: (lambda (v) ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s i) (if (= i n) v (begin (vector-set! v i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1)))))) ((lambda () ((vector-ref loop 0) s 0))))) #f))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_11976 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_11977;
	Closure_Code_11976:
	FUNCTION_ENTER("(lambda (v) ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s i) (if (= i n) v (begin (vector-set! v i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1)))))) ((lambda () ((vector-ref loop 0) s 0))))) #f))");
	RUNTIME_ASSERT(STACK_ARGC() == 1) ;
	DEBUG_TRACE("start: app tp: ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s i) (if (= i n) v (begin (vector-set! v i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1)))))) ((lambda () ((vector-ref loop 0) s 0))))) #f)") ;
	/* Start of Pushing args */
	machine.reg[RES] = makeSchemeBool(FALSE);
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: lambda: (lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s i) (if (= i n) v (begin (vector-set! v i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1)))))) ((lambda () ((vector-ref loop 0) s 0)))))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_11974 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_11975;
	Closure_Code_11974:
	FUNCTION_ENTER("(lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s i) (if (= i n) v (begin (vector-set! v i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1)))))) ((lambda () ((vector-ref loop 0) s 0)))))");
	RUNTIME_ASSERT(STACK_ARGC() == 1) ;
	DEBUG_TRACE("start: sequence: (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s i) (if (= i n) v (begin (vector-set! v i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1)))))) ((lambda () ((vector-ref loop 0) s 0))))") ;
	/* start new begin statement */
	DEBUG_TRACE("start: set: (set! loop (box loop))") ;
	DEBUG_TRACE("start: application: (box loop)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: loop") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: loop") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: box") ;
	machine.reg[RES] = getSymbol("box") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: box") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_11959) ;
	ret_from_app_11959:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (box loop)") ;
	*(STACK_ARGS()-0) = machine.reg[RES] ;
	machine.reg[RES] = makeSchemeVoid() ;
	DEBUG_TRACE("end: set: (set! loop (box loop))") ;
	/* start new begin statement */
	DEBUG_TRACE("start: application: (vector-set! loop 0 (lambda (s i) (if (= i n) v (begin (vector-set! v i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1))))))") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: lambda: (lambda (s i) (if (= i n) v (begin (vector-set! v i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1)))))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_11968 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_11969;
	Closure_Code_11968:
	FUNCTION_ENTER("(lambda (s i) (if (= i n) v (begin (vector-set! v i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1)))))");
	RUNTIME_ASSERT(STACK_ARGC() == 2) ;
	DEBUG_TRACE("start: if: (if (= i n) v (begin (vector-set! v i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1))))") ;

	DEBUG_TRACE("start: application: (= i n)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var bound: n") ;
	machine.reg[RES] = getBoundVar (STACK_ENV(), 2, 0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var bound: n") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: i") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: i") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: =") ;
	machine.reg[RES] = getSymbol("=") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: =") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_11960) ;
	ret_from_app_11960:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (= i n)") ;
	if (sobIsFalse(machine.reg[RES])) goto If_Else_11966;
	DEBUG_NOTICE("branch taken");
	DEBUG_TRACE("start: var bound: v") ;
	machine.reg[RES] = getBoundVar (STACK_ENV(), 1, 0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var bound: v") ;
	goto If_Done_11967;
	If_Else_11966:
	DEBUG_NOTICE("branch not taken");
	DEBUG_TRACE("start: sequence: (begin (vector-set! v i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1)))") ;
	/* start new begin statement */
	DEBUG_TRACE("start: application: (vector-set! v i (car s))") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: application: (car s)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: s") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: car") ;
	machine.reg[RES] = getSymbol("car") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: car") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_11961) ;
	ret_from_app_11961:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (car s)") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: i") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: i") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var bound: v") ;
	machine.reg[RES] = getBoundVar (STACK_ENV(), 1, 0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var bound: v") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: vector-set!") ;
	machine.reg[RES] = getSymbol("vector-set!") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: vector-set!") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 3, machine.reg[1], &&ret_from_app_11962) ;
	ret_from_app_11962:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (vector-set! v i (car s))") ;
	/* start new begin statement */
	DEBUG_TRACE("start: app tp: ((vector-ref loop 0) (cdr s) (+ i 1))") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: application: (+ i 1)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	machine.reg[RES] = makeSchemeInt(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: i") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: i") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: +") ;
	machine.reg[RES] = getSymbol("+") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: +") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_11963) ;
	ret_from_app_11963:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (+ i 1)") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: application: (cdr s)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: s") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: cdr") ;
	machine.reg[RES] = getSymbol("cdr") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: cdr") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_11964) ;
	ret_from_app_11964:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (cdr s)") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: application: (vector-ref loop 0)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	machine.reg[RES] = makeSchemeInt(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var bound: loop") ;
	machine.reg[RES] = getBoundVar (STACK_ENV(), 0, 0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var bound: loop") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: vector-ref") ;
	machine.reg[RES] = getSymbol("vector-ref") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: vector-ref") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_11965) ;
	ret_from_app_11965:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (vector-ref loop 0)") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 2 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	machine.stack[machine.fp+2] = machine.stack[machine.sp+1] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +3 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 2, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: ((vector-ref loop 0) (cdr s) (+ i 1))") ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: sequence: (begin (vector-set! v i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1)))") ;
	If_Done_11967:

	DEBUG_TRACE("end: if: (if (= i n) v (begin (vector-set! v i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1))))") ;
	FUNCTION_EXIT ("(lambda (s i) (if (= i n) v (begin (vector-set! v i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1)))))");
	Continue_11969:
	DEBUG_TRACE("end: lambda: (lambda (s i) (if (= i n) v (begin (vector-set! v i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1)))))") ;
	push((void*)machine.reg[RES]) ;
	machine.reg[RES] = makeSchemeInt(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: loop") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: loop") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: vector-set!") ;
	machine.reg[RES] = getSymbol("vector-set!") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: vector-set!") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 3, machine.reg[1], &&ret_from_app_11970) ;
	ret_from_app_11970:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (vector-set! loop 0 (lambda (s i) (if (= i n) v (begin (vector-set! v i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1))))))") ;
	/* start new begin statement */
	DEBUG_TRACE("start: app tp: ((lambda () ((vector-ref loop 0) s 0)))") ;
	/* Start of Pushing args */
	/* End of Pushing args */
	DEBUG_TRACE("start: lambda: (lambda () ((vector-ref loop 0) s 0))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_11972 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_11973;
	Closure_Code_11972:
	FUNCTION_ENTER("(lambda () ((vector-ref loop 0) s 0))");
	RUNTIME_ASSERT(STACK_ARGC() == 0) ;
	DEBUG_TRACE("start: app tp: ((vector-ref loop 0) s 0)") ;
	/* Start of Pushing args */
	machine.reg[RES] = makeSchemeInt(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var bound: s") ;
	machine.reg[RES] = getBoundVar (STACK_ENV(), 3, 0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var bound: s") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: application: (vector-ref loop 0)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	machine.reg[RES] = makeSchemeInt(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var bound: loop") ;
	machine.reg[RES] = getBoundVar (STACK_ENV(), 0, 0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var bound: loop") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: vector-ref") ;
	machine.reg[RES] = getSymbol("vector-ref") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: vector-ref") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_11971) ;
	ret_from_app_11971:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (vector-ref loop 0)") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 2 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	machine.stack[machine.fp+2] = machine.stack[machine.sp+1] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +3 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 2, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: ((vector-ref loop 0) s 0)") ;
	FUNCTION_EXIT ("(lambda () ((vector-ref loop 0) s 0))");
	Continue_11973:
	DEBUG_TRACE("end: lambda: (lambda () ((vector-ref loop 0) s 0))") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 0 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	/* End of overwriting old frame */
	machine.sp = machine.fp +1 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 0, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: ((lambda () ((vector-ref loop 0) s 0)))") ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: sequence: (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s i) (if (= i n) v (begin (vector-set! v i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1)))))) ((lambda () ((vector-ref loop 0) s 0))))") ;
	FUNCTION_EXIT ("(lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s i) (if (= i n) v (begin (vector-set! v i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1)))))) ((lambda () ((vector-ref loop 0) s 0)))))");
	Continue_11975:
	DEBUG_TRACE("end: lambda: (lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s i) (if (= i n) v (begin (vector-set! v i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1)))))) ((lambda () ((vector-ref loop 0) s 0)))))") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 1 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +2 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 1, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s i) (if (= i n) v (begin (vector-set! v i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1)))))) ((lambda () ((vector-ref loop 0) s 0))))) #f)") ;
	FUNCTION_EXIT ("(lambda (v) ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s i) (if (= i n) v (begin (vector-set! v i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1)))))) ((lambda () ((vector-ref loop 0) s 0))))) #f))");
	Continue_11977:
	DEBUG_TRACE("end: lambda: (lambda (v) ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s i) (if (= i n) v (begin (vector-set! v i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1)))))) ((lambda () ((vector-ref loop 0) s 0))))) #f))") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 1 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +2 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 1, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: ((lambda (v) ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s i) (if (= i n) v (begin (vector-set! v i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1)))))) ((lambda () ((vector-ref loop 0) s 0))))) #f)) (make-vector n))") ;
	FUNCTION_EXIT ("(lambda (n) ((lambda (v) ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s i) (if (= i n) v (begin (vector-set! v i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1)))))) ((lambda () ((vector-ref loop 0) s 0))))) #f)) (make-vector n)))");
	Continue_11979:
	DEBUG_TRACE("end: lambda: (lambda (n) ((lambda (v) ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s i) (if (= i n) v (begin (vector-set! v i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1)))))) ((lambda () ((vector-ref loop 0) s 0))))) #f)) (make-vector n)))") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 1 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +2 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 1, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: ((lambda (n) ((lambda (v) ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s i) (if (= i n) v (begin (vector-set! v i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1)))))) ((lambda () ((vector-ref loop 0) s 0))))) #f)) (make-vector n))) (length s))") ;
	FUNCTION_EXIT ("(lambda (s) ((lambda (n) ((lambda (v) ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s i) (if (= i n) v (begin (vector-set! v i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1)))))) ((lambda () ((vector-ref loop 0) s 0))))) #f)) (make-vector n))) (length s)))");
	Continue_11981:
	DEBUG_TRACE("end: lambda: (lambda (s) ((lambda (n) ((lambda (v) ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s i) (if (= i n) v (begin (vector-set! v i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1)))))) ((lambda () ((vector-ref loop 0) s 0))))) #f)) (make-vector n))) (length s)))") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("list->vector") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define list->vector (lambda (s) ((lambda (n) ((lambda (v) ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s i) (if (= i n) v (begin (vector-set! v i (car s)) ((vector-ref loop 0) (cdr s) (+ i 1)))))) ((lambda () ((vector-ref loop 0) s 0))))) #f)) (make-vector n))) (length s))))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_11956:
	
	pushDummyFrame(&&exit_11982) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define member (lambda (a s) (if (null\? s) #f (if (equal\? (car s) a) s (member a (cdr s)))))) **********") ;
	DEBUG_TRACE("start: def: (define member (lambda (a s) (if (null\? s) #f (if (equal\? (car s) a) s (member a (cdr s))))))") ;
	DEBUG_TRACE("start: lambda: (lambda (a s) (if (null\? s) #f (if (equal\? (car s) a) s (member a (cdr s)))))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_11991 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_11992;
	Closure_Code_11991:
	FUNCTION_ENTER("(lambda (a s) (if (null\? s) #f (if (equal\? (car s) a) s (member a (cdr s)))))");
	RUNTIME_ASSERT(STACK_ARGC() == 2) ;
	DEBUG_TRACE("start: if: (if (null\? s) #f (if (equal\? (car s) a) s (member a (cdr s))))") ;

	DEBUG_TRACE("start: application: (null\? s)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: s") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: null\?") ;
	machine.reg[RES] = getSymbol("null?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: null\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_11983) ;
	ret_from_app_11983:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (null\? s)") ;
	if (sobIsFalse(machine.reg[RES])) goto If_Else_11989;
	DEBUG_NOTICE("branch taken");
	machine.reg[RES] = makeSchemeBool(FALSE);
	goto If_Done_11990;
	If_Else_11989:
	DEBUG_NOTICE("branch not taken");
	DEBUG_TRACE("start: if: (if (equal\? (car s) a) s (member a (cdr s)))") ;

	DEBUG_TRACE("start: application: (equal\? (car s) a)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: a") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: a") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: application: (car s)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: s") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: car") ;
	machine.reg[RES] = getSymbol("car") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: car") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_11984) ;
	ret_from_app_11984:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (car s)") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: equal\?") ;
	machine.reg[RES] = getSymbol("equal?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: equal\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_11985) ;
	ret_from_app_11985:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (equal\? (car s) a)") ;
	if (sobIsFalse(machine.reg[RES])) goto If_Else_11987;
	DEBUG_NOTICE("branch taken");
	DEBUG_TRACE("start: var param: s") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s") ;
	goto If_Done_11988;
	If_Else_11987:
	DEBUG_NOTICE("branch not taken");
	DEBUG_TRACE("start: app tp: (member a (cdr s))") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: application: (cdr s)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: s") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: cdr") ;
	machine.reg[RES] = getSymbol("cdr") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: cdr") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_11986) ;
	ret_from_app_11986:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (cdr s)") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: a") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: a") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: var free: member") ;
	machine.reg[RES] = getSymbol("member") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: member") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 2 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	machine.stack[machine.fp+2] = machine.stack[machine.sp+1] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +3 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 2, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: (member a (cdr s))") ;
	If_Done_11988:

	DEBUG_TRACE("end: if: (if (equal\? (car s) a) s (member a (cdr s)))") ;
	If_Done_11990:

	DEBUG_TRACE("end: if: (if (null\? s) #f (if (equal\? (car s) a) s (member a (cdr s))))") ;
	FUNCTION_EXIT ("(lambda (a s) (if (null\? s) #f (if (equal\? (car s) a) s (member a (cdr s)))))");
	Continue_11992:
	DEBUG_TRACE("end: lambda: (lambda (a s) (if (null\? s) #f (if (equal\? (car s) a) s (member a (cdr s)))))") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("member") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define member (lambda (a s) (if (null\? s) #f (if (equal\? (car s) a) s (member a (cdr s))))))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_11982:
	
	pushDummyFrame(&&exit_11993) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define assoc (lambda (a s) (if (null\? s) #f (if (eq\? (caar s) a) (car s) (assoc a (cdr s)))))) **********") ;
	DEBUG_TRACE("start: def: (define assoc (lambda (a s) (if (null\? s) #f (if (eq\? (caar s) a) (car s) (assoc a (cdr s))))))") ;
	DEBUG_TRACE("start: lambda: (lambda (a s) (if (null\? s) #f (if (eq\? (caar s) a) (car s) (assoc a (cdr s)))))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_12002 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_12003;
	Closure_Code_12002:
	FUNCTION_ENTER("(lambda (a s) (if (null\? s) #f (if (eq\? (caar s) a) (car s) (assoc a (cdr s)))))");
	RUNTIME_ASSERT(STACK_ARGC() == 2) ;
	DEBUG_TRACE("start: if: (if (null\? s) #f (if (eq\? (caar s) a) (car s) (assoc a (cdr s))))") ;

	DEBUG_TRACE("start: application: (null\? s)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: s") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: null\?") ;
	machine.reg[RES] = getSymbol("null?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: null\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_11994) ;
	ret_from_app_11994:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (null\? s)") ;
	if (sobIsFalse(machine.reg[RES])) goto If_Else_12000;
	DEBUG_NOTICE("branch taken");
	machine.reg[RES] = makeSchemeBool(FALSE);
	goto If_Done_12001;
	If_Else_12000:
	DEBUG_NOTICE("branch not taken");
	DEBUG_TRACE("start: if: (if (eq\? (caar s) a) (car s) (assoc a (cdr s)))") ;

	DEBUG_TRACE("start: application: (eq\? (caar s) a)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: a") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: a") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: application: (caar s)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: s") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: caar") ;
	machine.reg[RES] = getSymbol("caar") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: caar") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_11995) ;
	ret_from_app_11995:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (caar s)") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: eq\?") ;
	machine.reg[RES] = getSymbol("eq?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: eq\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_11996) ;
	ret_from_app_11996:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (eq\? (caar s) a)") ;
	if (sobIsFalse(machine.reg[RES])) goto If_Else_11998;
	DEBUG_NOTICE("branch taken");
	DEBUG_TRACE("start: app tp: (car s)") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: var param: s") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: var free: car") ;
	machine.reg[RES] = getSymbol("car") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: car") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 1 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +2 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 1, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: (car s)") ;
	goto If_Done_11999;
	If_Else_11998:
	DEBUG_NOTICE("branch not taken");
	DEBUG_TRACE("start: app tp: (assoc a (cdr s))") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: application: (cdr s)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: s") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: cdr") ;
	machine.reg[RES] = getSymbol("cdr") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: cdr") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_11997) ;
	ret_from_app_11997:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (cdr s)") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: a") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: a") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: var free: assoc") ;
	machine.reg[RES] = getSymbol("assoc") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: assoc") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 2 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	machine.stack[machine.fp+2] = machine.stack[machine.sp+1] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +3 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 2, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: (assoc a (cdr s))") ;
	If_Done_11999:

	DEBUG_TRACE("end: if: (if (eq\? (caar s) a) (car s) (assoc a (cdr s)))") ;
	If_Done_12001:

	DEBUG_TRACE("end: if: (if (null\? s) #f (if (eq\? (caar s) a) (car s) (assoc a (cdr s))))") ;
	FUNCTION_EXIT ("(lambda (a s) (if (null\? s) #f (if (eq\? (caar s) a) (car s) (assoc a (cdr s)))))");
	Continue_12003:
	DEBUG_TRACE("end: lambda: (lambda (a s) (if (null\? s) #f (if (eq\? (caar s) a) (car s) (assoc a (cdr s)))))") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("assoc") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define assoc (lambda (a s) (if (null\? s) #f (if (eq\? (caar s) a) (car s) (assoc a (cdr s))))))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_11993:
	
	pushDummyFrame(&&exit_12004) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define equal\? (lambda (e1 e2) (if (if (pair\? e1) (pair\? e2) #f) (if (equal\? (car e1) (car e2)) (equal\? (cdr e1) (cdr e2)) #f) (if (if (vector\? e1) (if (vector\? e2) (= (vector-length e1) (vector-length e2)) #f) #f) (equal\? (vector->list e1) (vector->list e2)) (if (if (null\? e1) (null\? e2) #f) #t (if (if (boolean\? e1) (boolean\? e2) #f) (or (if e1 e2 #f) (if (not e1) (not e2) #f)) (if (if (char\? e1) (char\? e2) #f) (char=\? e1 e2) (if (if (number\? e1) (number\? e2) #f) (= e1 e2) (if (if (string\? e1) (string\? e2) #f) (string=\? e1 e2) (if (if (symbol\? e1) (symbol\? e2) #f) (eq\? e1 e2) (if (if (void\? e1) (void\? e2) #f) #t #f))))))))))) **********") ;
	DEBUG_TRACE("start: def: (define equal\? (lambda (e1 e2) (if (if (pair\? e1) (pair\? e2) #f) (if (equal\? (car e1) (car e2)) (equal\? (cdr e1) (cdr e2)) #f) (if (if (vector\? e1) (if (vector\? e2) (= (vector-length e1) (vector-length e2)) #f) #f) (equal\? (vector->list e1) (vector->list e2)) (if (if (null\? e1) (null\? e2) #f) #t (if (if (boolean\? e1) (boolean\? e2) #f) (or (if e1 e2 #f) (if (not e1) (not e2) #f)) (if (if (char\? e1) (char\? e2) #f) (char=\? e1 e2) (if (if (number\? e1) (number\? e2) #f) (= e1 e2) (if (if (string\? e1) (string\? e2) #f) (string=\? e1 e2) (if (if (symbol\? e1) (symbol\? e2) #f) (eq\? e1 e2) (if (if (void\? e1) (void\? e2) #f) #t #f)))))))))))") ;
	DEBUG_TRACE("start: lambda: (lambda (e1 e2) (if (if (pair\? e1) (pair\? e2) #f) (if (equal\? (car e1) (car e2)) (equal\? (cdr e1) (cdr e2)) #f) (if (if (vector\? e1) (if (vector\? e2) (= (vector-length e1) (vector-length e2)) #f) #f) (equal\? (vector->list e1) (vector->list e2)) (if (if (null\? e1) (null\? e2) #f) #t (if (if (boolean\? e1) (boolean\? e2) #f) (or (if e1 e2 #f) (if (not e1) (not e2) #f)) (if (if (char\? e1) (char\? e2) #f) (char=\? e1 e2) (if (if (number\? e1) (number\? e2) #f) (= e1 e2) (if (if (string\? e1) (string\? e2) #f) (string=\? e1 e2) (if (if (symbol\? e1) (symbol\? e2) #f) (eq\? e1 e2) (if (if (void\? e1) (void\? e2) #f) #t #f))))))))))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_12079 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_12080;
	Closure_Code_12079:
	FUNCTION_ENTER("(lambda (e1 e2) (if (if (pair\? e1) (pair\? e2) #f) (if (equal\? (car e1) (car e2)) (equal\? (cdr e1) (cdr e2)) #f) (if (if (vector\? e1) (if (vector\? e2) (= (vector-length e1) (vector-length e2)) #f) #f) (equal\? (vector->list e1) (vector->list e2)) (if (if (null\? e1) (null\? e2) #f) #t (if (if (boolean\? e1) (boolean\? e2) #f) (or (if e1 e2 #f) (if (not e1) (not e2) #f)) (if (if (char\? e1) (char\? e2) #f) (char=\? e1 e2) (if (if (number\? e1) (number\? e2) #f) (= e1 e2) (if (if (string\? e1) (string\? e2) #f) (string=\? e1 e2) (if (if (symbol\? e1) (symbol\? e2) #f) (eq\? e1 e2) (if (if (void\? e1) (void\? e2) #f) #t #f))))))))))");
	RUNTIME_ASSERT(STACK_ARGC() == 2) ;
	DEBUG_TRACE("start: if: (if (if (pair\? e1) (pair\? e2) #f) (if (equal\? (car e1) (car e2)) (equal\? (cdr e1) (cdr e2)) #f) (if (if (vector\? e1) (if (vector\? e2) (= (vector-length e1) (vector-length e2)) #f) #f) (equal\? (vector->list e1) (vector->list e2)) (if (if (null\? e1) (null\? e2) #f) #t (if (if (boolean\? e1) (boolean\? e2) #f) (or (if e1 e2 #f) (if (not e1) (not e2) #f)) (if (if (char\? e1) (char\? e2) #f) (char=\? e1 e2) (if (if (number\? e1) (number\? e2) #f) (= e1 e2) (if (if (string\? e1) (string\? e2) #f) (string=\? e1 e2) (if (if (symbol\? e1) (symbol\? e2) #f) (eq\? e1 e2) (if (if (void\? e1) (void\? e2) #f) #t #f)))))))))") ;

	DEBUG_TRACE("start: if: (if (pair\? e1) (pair\? e2) #f)") ;

	DEBUG_TRACE("start: application: (pair\? e1)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: e1") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: e1") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: pair\?") ;
	machine.reg[RES] = getSymbol("pair?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: pair\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_12005) ;
	ret_from_app_12005:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (pair\? e1)") ;
	if (sobIsFalse(machine.reg[RES])) goto If_Else_12007;
	DEBUG_NOTICE("branch taken");
	DEBUG_TRACE("start: application: (pair\? e2)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: e2") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: e2") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: pair\?") ;
	machine.reg[RES] = getSymbol("pair?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: pair\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_12006) ;
	ret_from_app_12006:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (pair\? e2)") ;
	goto If_Done_12008;
	If_Else_12007:
	DEBUG_NOTICE("branch not taken");
	machine.reg[RES] = makeSchemeBool(FALSE);
	If_Done_12008:

	DEBUG_TRACE("end: if: (if (pair\? e1) (pair\? e2) #f)") ;
	if (sobIsFalse(machine.reg[RES])) goto If_Else_12077;
	DEBUG_NOTICE("branch taken");
	DEBUG_TRACE("start: if: (if (equal\? (car e1) (car e2)) (equal\? (cdr e1) (cdr e2)) #f)") ;

	DEBUG_TRACE("start: application: (equal\? (car e1) (car e2))") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: application: (car e2)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: e2") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: e2") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: car") ;
	machine.reg[RES] = getSymbol("car") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: car") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_12009) ;
	ret_from_app_12009:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (car e2)") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: application: (car e1)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: e1") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: e1") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: car") ;
	machine.reg[RES] = getSymbol("car") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: car") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_12010) ;
	ret_from_app_12010:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (car e1)") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: equal\?") ;
	machine.reg[RES] = getSymbol("equal?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: equal\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_12011) ;
	ret_from_app_12011:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (equal\? (car e1) (car e2))") ;
	if (sobIsFalse(machine.reg[RES])) goto If_Else_12014;
	DEBUG_NOTICE("branch taken");
	DEBUG_TRACE("start: app tp: (equal\? (cdr e1) (cdr e2))") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: application: (cdr e2)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: e2") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: e2") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: cdr") ;
	machine.reg[RES] = getSymbol("cdr") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: cdr") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_12012) ;
	ret_from_app_12012:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (cdr e2)") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: application: (cdr e1)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: e1") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: e1") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: cdr") ;
	machine.reg[RES] = getSymbol("cdr") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: cdr") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_12013) ;
	ret_from_app_12013:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (cdr e1)") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: var free: equal\?") ;
	machine.reg[RES] = getSymbol("equal?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: equal\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 2 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	machine.stack[machine.fp+2] = machine.stack[machine.sp+1] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +3 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 2, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: (equal\? (cdr e1) (cdr e2))") ;
	goto If_Done_12015;
	If_Else_12014:
	DEBUG_NOTICE("branch not taken");
	machine.reg[RES] = makeSchemeBool(FALSE);
	If_Done_12015:

	DEBUG_TRACE("end: if: (if (equal\? (car e1) (car e2)) (equal\? (cdr e1) (cdr e2)) #f)") ;
	goto If_Done_12078;
	If_Else_12077:
	DEBUG_NOTICE("branch not taken");
	DEBUG_TRACE("start: if: (if (if (vector\? e1) (if (vector\? e2) (= (vector-length e1) (vector-length e2)) #f) #f) (equal\? (vector->list e1) (vector->list e2)) (if (if (null\? e1) (null\? e2) #f) #t (if (if (boolean\? e1) (boolean\? e2) #f) (or (if e1 e2 #f) (if (not e1) (not e2) #f)) (if (if (char\? e1) (char\? e2) #f) (char=\? e1 e2) (if (if (number\? e1) (number\? e2) #f) (= e1 e2) (if (if (string\? e1) (string\? e2) #f) (string=\? e1 e2) (if (if (symbol\? e1) (symbol\? e2) #f) (eq\? e1 e2) (if (if (void\? e1) (void\? e2) #f) #t #f))))))))") ;

	DEBUG_TRACE("start: if: (if (vector\? e1) (if (vector\? e2) (= (vector-length e1) (vector-length e2)) #f) #f)") ;

	DEBUG_TRACE("start: application: (vector\? e1)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: e1") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: e1") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: vector\?") ;
	machine.reg[RES] = getSymbol("vector?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: vector\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_12016) ;
	ret_from_app_12016:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (vector\? e1)") ;
	if (sobIsFalse(machine.reg[RES])) goto If_Else_12023;
	DEBUG_NOTICE("branch taken");
	DEBUG_TRACE("start: if: (if (vector\? e2) (= (vector-length e1) (vector-length e2)) #f)") ;

	DEBUG_TRACE("start: application: (vector\? e2)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: e2") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: e2") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: vector\?") ;
	machine.reg[RES] = getSymbol("vector?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: vector\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_12017) ;
	ret_from_app_12017:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (vector\? e2)") ;
	if (sobIsFalse(machine.reg[RES])) goto If_Else_12021;
	DEBUG_NOTICE("branch taken");
	DEBUG_TRACE("start: application: (= (vector-length e1) (vector-length e2))") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: application: (vector-length e2)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: e2") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: e2") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: vector-length") ;
	machine.reg[RES] = getSymbol("vector-length") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: vector-length") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_12018) ;
	ret_from_app_12018:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (vector-length e2)") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: application: (vector-length e1)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: e1") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: e1") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: vector-length") ;
	machine.reg[RES] = getSymbol("vector-length") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: vector-length") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_12019) ;
	ret_from_app_12019:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (vector-length e1)") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: =") ;
	machine.reg[RES] = getSymbol("=") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: =") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_12020) ;
	ret_from_app_12020:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (= (vector-length e1) (vector-length e2))") ;
	goto If_Done_12022;
	If_Else_12021:
	DEBUG_NOTICE("branch not taken");
	machine.reg[RES] = makeSchemeBool(FALSE);
	If_Done_12022:

	DEBUG_TRACE("end: if: (if (vector\? e2) (= (vector-length e1) (vector-length e2)) #f)") ;
	goto If_Done_12024;
	If_Else_12023:
	DEBUG_NOTICE("branch not taken");
	machine.reg[RES] = makeSchemeBool(FALSE);
	If_Done_12024:

	DEBUG_TRACE("end: if: (if (vector\? e1) (if (vector\? e2) (= (vector-length e1) (vector-length e2)) #f) #f)") ;
	if (sobIsFalse(machine.reg[RES])) goto If_Else_12075;
	DEBUG_NOTICE("branch taken");
	DEBUG_TRACE("start: app tp: (equal\? (vector->list e1) (vector->list e2))") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: application: (vector->list e2)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: e2") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: e2") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: vector->list") ;
	machine.reg[RES] = getSymbol("vector->list") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: vector->list") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_12025) ;
	ret_from_app_12025:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (vector->list e2)") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: application: (vector->list e1)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: e1") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: e1") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: vector->list") ;
	machine.reg[RES] = getSymbol("vector->list") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: vector->list") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_12026) ;
	ret_from_app_12026:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (vector->list e1)") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: var free: equal\?") ;
	machine.reg[RES] = getSymbol("equal?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: equal\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 2 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	machine.stack[machine.fp+2] = machine.stack[machine.sp+1] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +3 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 2, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: (equal\? (vector->list e1) (vector->list e2))") ;
	goto If_Done_12076;
	If_Else_12075:
	DEBUG_NOTICE("branch not taken");
	DEBUG_TRACE("start: if: (if (if (null\? e1) (null\? e2) #f) #t (if (if (boolean\? e1) (boolean\? e2) #f) (or (if e1 e2 #f) (if (not e1) (not e2) #f)) (if (if (char\? e1) (char\? e2) #f) (char=\? e1 e2) (if (if (number\? e1) (number\? e2) #f) (= e1 e2) (if (if (string\? e1) (string\? e2) #f) (string=\? e1 e2) (if (if (symbol\? e1) (symbol\? e2) #f) (eq\? e1 e2) (if (if (void\? e1) (void\? e2) #f) #t #f)))))))") ;

	DEBUG_TRACE("start: if: (if (null\? e1) (null\? e2) #f)") ;

	DEBUG_TRACE("start: application: (null\? e1)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: e1") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: e1") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: null\?") ;
	machine.reg[RES] = getSymbol("null?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: null\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_12027) ;
	ret_from_app_12027:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (null\? e1)") ;
	if (sobIsFalse(machine.reg[RES])) goto If_Else_12029;
	DEBUG_NOTICE("branch taken");
	DEBUG_TRACE("start: application: (null\? e2)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: e2") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: e2") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: null\?") ;
	machine.reg[RES] = getSymbol("null?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: null\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_12028) ;
	ret_from_app_12028:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (null\? e2)") ;
	goto If_Done_12030;
	If_Else_12029:
	DEBUG_NOTICE("branch not taken");
	machine.reg[RES] = makeSchemeBool(FALSE);
	If_Done_12030:

	DEBUG_TRACE("end: if: (if (null\? e1) (null\? e2) #f)") ;
	if (sobIsFalse(machine.reg[RES])) goto If_Else_12073;
	DEBUG_NOTICE("branch taken");
	machine.reg[RES] = makeSchemeBool(TRUE);
	goto If_Done_12074;
	If_Else_12073:
	DEBUG_NOTICE("branch not taken");
	DEBUG_TRACE("start: if: (if (if (boolean\? e1) (boolean\? e2) #f) (or (if e1 e2 #f) (if (not e1) (not e2) #f)) (if (if (char\? e1) (char\? e2) #f) (char=\? e1 e2) (if (if (number\? e1) (number\? e2) #f) (= e1 e2) (if (if (string\? e1) (string\? e2) #f) (string=\? e1 e2) (if (if (symbol\? e1) (symbol\? e2) #f) (eq\? e1 e2) (if (if (void\? e1) (void\? e2) #f) #t #f))))))") ;

	DEBUG_TRACE("start: if: (if (boolean\? e1) (boolean\? e2) #f)") ;

	DEBUG_TRACE("start: application: (boolean\? e1)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: e1") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: e1") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: boolean\?") ;
	machine.reg[RES] = getSymbol("boolean?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: boolean\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_12031) ;
	ret_from_app_12031:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (boolean\? e1)") ;
	if (sobIsFalse(machine.reg[RES])) goto If_Else_12033;
	DEBUG_NOTICE("branch taken");
	DEBUG_TRACE("start: application: (boolean\? e2)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: e2") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: e2") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: boolean\?") ;
	machine.reg[RES] = getSymbol("boolean?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: boolean\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_12032) ;
	ret_from_app_12032:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (boolean\? e2)") ;
	goto If_Done_12034;
	If_Else_12033:
	DEBUG_NOTICE("branch not taken");
	machine.reg[RES] = makeSchemeBool(FALSE);
	If_Done_12034:

	DEBUG_TRACE("end: if: (if (boolean\? e1) (boolean\? e2) #f)") ;
	if (sobIsFalse(machine.reg[RES])) goto If_Else_12071;
	DEBUG_NOTICE("branch taken");
	DEBUG_TRACE("start: or: (or (if e1 e2 #f) (if (not e1) (not e2) #f))") ;
	DEBUG_TRACE("start: if: (if e1 e2 #f)") ;

	DEBUG_TRACE("start: var param: e1") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: e1") ;
	if (sobIsFalse(machine.reg[RES])) goto If_Else_12036;
	DEBUG_NOTICE("branch taken");
	DEBUG_TRACE("start: var param: e2") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: e2") ;
	goto If_Done_12037;
	If_Else_12036:
	DEBUG_NOTICE("branch not taken");
	machine.reg[RES] = makeSchemeBool(FALSE);
	If_Done_12037:

	DEBUG_TRACE("end: if: (if e1 e2 #f)") ;
	if (sobIsntFalse(machine.reg[RES])) goto or_end_12035 ; /* end the 'or' if true */
	DEBUG_TRACE("start: if: (if (not e1) (not e2) #f)") ;

	DEBUG_TRACE("start: application: (not e1)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: e1") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: e1") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: not") ;
	machine.reg[RES] = getSymbol("not") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: not") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_12038) ;
	ret_from_app_12038:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (not e1)") ;
	if (sobIsFalse(machine.reg[RES])) goto If_Else_12039;
	DEBUG_NOTICE("branch taken");
	DEBUG_TRACE("start: app tp: (not e2)") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: var param: e2") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: e2") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: var free: not") ;
	machine.reg[RES] = getSymbol("not") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: not") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 1 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +2 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 1, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: (not e2)") ;
	goto If_Done_12040;
	If_Else_12039:
	DEBUG_NOTICE("branch not taken");
	machine.reg[RES] = makeSchemeBool(FALSE);
	If_Done_12040:

	DEBUG_TRACE("end: if: (if (not e1) (not e2) #f)") ;
	or_end_12035:
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: or: (or (if e1 e2 #f) (if (not e1) (not e2) #f))") ;
	goto If_Done_12072;
	If_Else_12071:
	DEBUG_NOTICE("branch not taken");
	DEBUG_TRACE("start: if: (if (if (char\? e1) (char\? e2) #f) (char=\? e1 e2) (if (if (number\? e1) (number\? e2) #f) (= e1 e2) (if (if (string\? e1) (string\? e2) #f) (string=\? e1 e2) (if (if (symbol\? e1) (symbol\? e2) #f) (eq\? e1 e2) (if (if (void\? e1) (void\? e2) #f) #t #f)))))") ;

	DEBUG_TRACE("start: if: (if (char\? e1) (char\? e2) #f)") ;

	DEBUG_TRACE("start: application: (char\? e1)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: e1") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: e1") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: char\?") ;
	machine.reg[RES] = getSymbol("char?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: char\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_12041) ;
	ret_from_app_12041:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (char\? e1)") ;
	if (sobIsFalse(machine.reg[RES])) goto If_Else_12043;
	DEBUG_NOTICE("branch taken");
	DEBUG_TRACE("start: application: (char\? e2)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: e2") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: e2") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: char\?") ;
	machine.reg[RES] = getSymbol("char?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: char\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_12042) ;
	ret_from_app_12042:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (char\? e2)") ;
	goto If_Done_12044;
	If_Else_12043:
	DEBUG_NOTICE("branch not taken");
	machine.reg[RES] = makeSchemeBool(FALSE);
	If_Done_12044:

	DEBUG_TRACE("end: if: (if (char\? e1) (char\? e2) #f)") ;
	if (sobIsFalse(machine.reg[RES])) goto If_Else_12069;
	DEBUG_NOTICE("branch taken");
	DEBUG_TRACE("start: app tp: (char=\? e1 e2)") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: var param: e2") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: e2") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: e1") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: e1") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: var free: char=\?") ;
	machine.reg[RES] = getSymbol("char=?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: char=\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 2 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	machine.stack[machine.fp+2] = machine.stack[machine.sp+1] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +3 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 2, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: (char=\? e1 e2)") ;
	goto If_Done_12070;
	If_Else_12069:
	DEBUG_NOTICE("branch not taken");
	DEBUG_TRACE("start: if: (if (if (number\? e1) (number\? e2) #f) (= e1 e2) (if (if (string\? e1) (string\? e2) #f) (string=\? e1 e2) (if (if (symbol\? e1) (symbol\? e2) #f) (eq\? e1 e2) (if (if (void\? e1) (void\? e2) #f) #t #f))))") ;

	DEBUG_TRACE("start: if: (if (number\? e1) (number\? e2) #f)") ;

	DEBUG_TRACE("start: application: (number\? e1)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: e1") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: e1") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: number\?") ;
	machine.reg[RES] = getSymbol("number?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: number\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_12045) ;
	ret_from_app_12045:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (number\? e1)") ;
	if (sobIsFalse(machine.reg[RES])) goto If_Else_12047;
	DEBUG_NOTICE("branch taken");
	DEBUG_TRACE("start: application: (number\? e2)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: e2") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: e2") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: number\?") ;
	machine.reg[RES] = getSymbol("number?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: number\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_12046) ;
	ret_from_app_12046:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (number\? e2)") ;
	goto If_Done_12048;
	If_Else_12047:
	DEBUG_NOTICE("branch not taken");
	machine.reg[RES] = makeSchemeBool(FALSE);
	If_Done_12048:

	DEBUG_TRACE("end: if: (if (number\? e1) (number\? e2) #f)") ;
	if (sobIsFalse(machine.reg[RES])) goto If_Else_12067;
	DEBUG_NOTICE("branch taken");
	DEBUG_TRACE("start: app tp: (= e1 e2)") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: var param: e2") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: e2") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: e1") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: e1") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: var free: =") ;
	machine.reg[RES] = getSymbol("=") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: =") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 2 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	machine.stack[machine.fp+2] = machine.stack[machine.sp+1] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +3 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 2, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: (= e1 e2)") ;
	goto If_Done_12068;
	If_Else_12067:
	DEBUG_NOTICE("branch not taken");
	DEBUG_TRACE("start: if: (if (if (string\? e1) (string\? e2) #f) (string=\? e1 e2) (if (if (symbol\? e1) (symbol\? e2) #f) (eq\? e1 e2) (if (if (void\? e1) (void\? e2) #f) #t #f)))") ;

	DEBUG_TRACE("start: if: (if (string\? e1) (string\? e2) #f)") ;

	DEBUG_TRACE("start: application: (string\? e1)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: e1") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: e1") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: string\?") ;
	machine.reg[RES] = getSymbol("string?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: string\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_12049) ;
	ret_from_app_12049:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (string\? e1)") ;
	if (sobIsFalse(machine.reg[RES])) goto If_Else_12051;
	DEBUG_NOTICE("branch taken");
	DEBUG_TRACE("start: application: (string\? e2)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: e2") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: e2") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: string\?") ;
	machine.reg[RES] = getSymbol("string?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: string\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_12050) ;
	ret_from_app_12050:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (string\? e2)") ;
	goto If_Done_12052;
	If_Else_12051:
	DEBUG_NOTICE("branch not taken");
	machine.reg[RES] = makeSchemeBool(FALSE);
	If_Done_12052:

	DEBUG_TRACE("end: if: (if (string\? e1) (string\? e2) #f)") ;
	if (sobIsFalse(machine.reg[RES])) goto If_Else_12065;
	DEBUG_NOTICE("branch taken");
	DEBUG_TRACE("start: app tp: (string=\? e1 e2)") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: var param: e2") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: e2") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: e1") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: e1") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: var free: string=\?") ;
	machine.reg[RES] = getSymbol("string=?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: string=\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 2 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	machine.stack[machine.fp+2] = machine.stack[machine.sp+1] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +3 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 2, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: (string=\? e1 e2)") ;
	goto If_Done_12066;
	If_Else_12065:
	DEBUG_NOTICE("branch not taken");
	DEBUG_TRACE("start: if: (if (if (symbol\? e1) (symbol\? e2) #f) (eq\? e1 e2) (if (if (void\? e1) (void\? e2) #f) #t #f))") ;

	DEBUG_TRACE("start: if: (if (symbol\? e1) (symbol\? e2) #f)") ;

	DEBUG_TRACE("start: application: (symbol\? e1)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: e1") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: e1") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: symbol\?") ;
	machine.reg[RES] = getSymbol("symbol?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: symbol\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_12053) ;
	ret_from_app_12053:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (symbol\? e1)") ;
	if (sobIsFalse(machine.reg[RES])) goto If_Else_12055;
	DEBUG_NOTICE("branch taken");
	DEBUG_TRACE("start: application: (symbol\? e2)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: e2") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: e2") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: symbol\?") ;
	machine.reg[RES] = getSymbol("symbol?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: symbol\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_12054) ;
	ret_from_app_12054:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (symbol\? e2)") ;
	goto If_Done_12056;
	If_Else_12055:
	DEBUG_NOTICE("branch not taken");
	machine.reg[RES] = makeSchemeBool(FALSE);
	If_Done_12056:

	DEBUG_TRACE("end: if: (if (symbol\? e1) (symbol\? e2) #f)") ;
	if (sobIsFalse(machine.reg[RES])) goto If_Else_12063;
	DEBUG_NOTICE("branch taken");
	DEBUG_TRACE("start: app tp: (eq\? e1 e2)") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: var param: e2") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: e2") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: e1") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: e1") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: var free: eq\?") ;
	machine.reg[RES] = getSymbol("eq?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: eq\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 2 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	machine.stack[machine.fp+2] = machine.stack[machine.sp+1] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +3 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 2, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: (eq\? e1 e2)") ;
	goto If_Done_12064;
	If_Else_12063:
	DEBUG_NOTICE("branch not taken");
	DEBUG_TRACE("start: if: (if (if (void\? e1) (void\? e2) #f) #t #f)") ;

	DEBUG_TRACE("start: if: (if (void\? e1) (void\? e2) #f)") ;

	DEBUG_TRACE("start: application: (void\? e1)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: e1") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: e1") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: void\?") ;
	machine.reg[RES] = getSymbol("void?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: void\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_12057) ;
	ret_from_app_12057:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (void\? e1)") ;
	if (sobIsFalse(machine.reg[RES])) goto If_Else_12059;
	DEBUG_NOTICE("branch taken");
	DEBUG_TRACE("start: application: (void\? e2)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: e2") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: e2") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: void\?") ;
	machine.reg[RES] = getSymbol("void?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: void\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_12058) ;
	ret_from_app_12058:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (void\? e2)") ;
	goto If_Done_12060;
	If_Else_12059:
	DEBUG_NOTICE("branch not taken");
	machine.reg[RES] = makeSchemeBool(FALSE);
	If_Done_12060:

	DEBUG_TRACE("end: if: (if (void\? e1) (void\? e2) #f)") ;
	if (sobIsFalse(machine.reg[RES])) goto If_Else_12061;
	DEBUG_NOTICE("branch taken");
	machine.reg[RES] = makeSchemeBool(TRUE);
	goto If_Done_12062;
	If_Else_12061:
	DEBUG_NOTICE("branch not taken");
	machine.reg[RES] = makeSchemeBool(FALSE);
	If_Done_12062:

	DEBUG_TRACE("end: if: (if (if (void\? e1) (void\? e2) #f) #t #f)") ;
	If_Done_12064:

	DEBUG_TRACE("end: if: (if (if (symbol\? e1) (symbol\? e2) #f) (eq\? e1 e2) (if (if (void\? e1) (void\? e2) #f) #t #f))") ;
	If_Done_12066:

	DEBUG_TRACE("end: if: (if (if (string\? e1) (string\? e2) #f) (string=\? e1 e2) (if (if (symbol\? e1) (symbol\? e2) #f) (eq\? e1 e2) (if (if (void\? e1) (void\? e2) #f) #t #f)))") ;
	If_Done_12068:

	DEBUG_TRACE("end: if: (if (if (number\? e1) (number\? e2) #f) (= e1 e2) (if (if (string\? e1) (string\? e2) #f) (string=\? e1 e2) (if (if (symbol\? e1) (symbol\? e2) #f) (eq\? e1 e2) (if (if (void\? e1) (void\? e2) #f) #t #f))))") ;
	If_Done_12070:

	DEBUG_TRACE("end: if: (if (if (char\? e1) (char\? e2) #f) (char=\? e1 e2) (if (if (number\? e1) (number\? e2) #f) (= e1 e2) (if (if (string\? e1) (string\? e2) #f) (string=\? e1 e2) (if (if (symbol\? e1) (symbol\? e2) #f) (eq\? e1 e2) (if (if (void\? e1) (void\? e2) #f) #t #f)))))") ;
	If_Done_12072:

	DEBUG_TRACE("end: if: (if (if (boolean\? e1) (boolean\? e2) #f) (or (if e1 e2 #f) (if (not e1) (not e2) #f)) (if (if (char\? e1) (char\? e2) #f) (char=\? e1 e2) (if (if (number\? e1) (number\? e2) #f) (= e1 e2) (if (if (string\? e1) (string\? e2) #f) (string=\? e1 e2) (if (if (symbol\? e1) (symbol\? e2) #f) (eq\? e1 e2) (if (if (void\? e1) (void\? e2) #f) #t #f))))))") ;
	If_Done_12074:

	DEBUG_TRACE("end: if: (if (if (null\? e1) (null\? e2) #f) #t (if (if (boolean\? e1) (boolean\? e2) #f) (or (if e1 e2 #f) (if (not e1) (not e2) #f)) (if (if (char\? e1) (char\? e2) #f) (char=\? e1 e2) (if (if (number\? e1) (number\? e2) #f) (= e1 e2) (if (if (string\? e1) (string\? e2) #f) (string=\? e1 e2) (if (if (symbol\? e1) (symbol\? e2) #f) (eq\? e1 e2) (if (if (void\? e1) (void\? e2) #f) #t #f)))))))") ;
	If_Done_12076:

	DEBUG_TRACE("end: if: (if (if (vector\? e1) (if (vector\? e2) (= (vector-length e1) (vector-length e2)) #f) #f) (equal\? (vector->list e1) (vector->list e2)) (if (if (null\? e1) (null\? e2) #f) #t (if (if (boolean\? e1) (boolean\? e2) #f) (or (if e1 e2 #f) (if (not e1) (not e2) #f)) (if (if (char\? e1) (char\? e2) #f) (char=\? e1 e2) (if (if (number\? e1) (number\? e2) #f) (= e1 e2) (if (if (string\? e1) (string\? e2) #f) (string=\? e1 e2) (if (if (symbol\? e1) (symbol\? e2) #f) (eq\? e1 e2) (if (if (void\? e1) (void\? e2) #f) #t #f))))))))") ;
	If_Done_12078:

	DEBUG_TRACE("end: if: (if (if (pair\? e1) (pair\? e2) #f) (if (equal\? (car e1) (car e2)) (equal\? (cdr e1) (cdr e2)) #f) (if (if (vector\? e1) (if (vector\? e2) (= (vector-length e1) (vector-length e2)) #f) #f) (equal\? (vector->list e1) (vector->list e2)) (if (if (null\? e1) (null\? e2) #f) #t (if (if (boolean\? e1) (boolean\? e2) #f) (or (if e1 e2 #f) (if (not e1) (not e2) #f)) (if (if (char\? e1) (char\? e2) #f) (char=\? e1 e2) (if (if (number\? e1) (number\? e2) #f) (= e1 e2) (if (if (string\? e1) (string\? e2) #f) (string=\? e1 e2) (if (if (symbol\? e1) (symbol\? e2) #f) (eq\? e1 e2) (if (if (void\? e1) (void\? e2) #f) #t #f)))))))))") ;
	FUNCTION_EXIT ("(lambda (e1 e2) (if (if (pair\? e1) (pair\? e2) #f) (if (equal\? (car e1) (car e2)) (equal\? (cdr e1) (cdr e2)) #f) (if (if (vector\? e1) (if (vector\? e2) (= (vector-length e1) (vector-length e2)) #f) #f) (equal\? (vector->list e1) (vector->list e2)) (if (if (null\? e1) (null\? e2) #f) #t (if (if (boolean\? e1) (boolean\? e2) #f) (or (if e1 e2 #f) (if (not e1) (not e2) #f)) (if (if (char\? e1) (char\? e2) #f) (char=\? e1 e2) (if (if (number\? e1) (number\? e2) #f) (= e1 e2) (if (if (string\? e1) (string\? e2) #f) (string=\? e1 e2) (if (if (symbol\? e1) (symbol\? e2) #f) (eq\? e1 e2) (if (if (void\? e1) (void\? e2) #f) #t #f))))))))))");
	Continue_12080:
	DEBUG_TRACE("end: lambda: (lambda (e1 e2) (if (if (pair\? e1) (pair\? e2) #f) (if (equal\? (car e1) (car e2)) (equal\? (cdr e1) (cdr e2)) #f) (if (if (vector\? e1) (if (vector\? e2) (= (vector-length e1) (vector-length e2)) #f) #f) (equal\? (vector->list e1) (vector->list e2)) (if (if (null\? e1) (null\? e2) #f) #t (if (if (boolean\? e1) (boolean\? e2) #f) (or (if e1 e2 #f) (if (not e1) (not e2) #f)) (if (if (char\? e1) (char\? e2) #f) (char=\? e1 e2) (if (if (number\? e1) (number\? e2) #f) (= e1 e2) (if (if (string\? e1) (string\? e2) #f) (string=\? e1 e2) (if (if (symbol\? e1) (symbol\? e2) #f) (eq\? e1 e2) (if (if (void\? e1) (void\? e2) #f) #t #f))))))))))") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("equal\?") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define equal\? (lambda (e1 e2) (if (if (pair\? e1) (pair\? e2) #f) (if (equal\? (car e1) (car e2)) (equal\? (cdr e1) (cdr e2)) #f) (if (if (vector\? e1) (if (vector\? e2) (= (vector-length e1) (vector-length e2)) #f) #f) (equal\? (vector->list e1) (vector->list e2)) (if (if (null\? e1) (null\? e2) #f) #t (if (if (boolean\? e1) (boolean\? e2) #f) (or (if e1 e2 #f) (if (not e1) (not e2) #f)) (if (if (char\? e1) (char\? e2) #f) (char=\? e1 e2) (if (if (number\? e1) (number\? e2) #f) (= e1 e2) (if (if (string\? e1) (string\? e2) #f) (string=\? e1 e2) (if (if (symbol\? e1) (symbol\? e2) #f) (eq\? e1 e2) (if (if (void\? e1) (void\? e2) #f) #t #f)))))))))))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_12004:
	
	pushDummyFrame(&&exit_12081) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define void ((lambda (void-object) (lambda () void-object)) (if #f #f \'void))) **********") ;
	DEBUG_TRACE("start: def: (define void ((lambda (void-object) (lambda () void-object)) (if #f #f \'void)))") ;
	DEBUG_TRACE("start: application: ((lambda (void-object) (lambda () void-object)) (if #f #f \'void))") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: if: (if #f #f \'void)") ;

	machine.reg[RES] = makeSchemeBool(FALSE);
	if (sobIsFalse(machine.reg[RES])) goto If_Else_12082;
	DEBUG_NOTICE("branch taken");
	machine.reg[RES] = makeSchemeBool(FALSE);
	goto If_Done_12083;
	If_Else_12082:
	DEBUG_NOTICE("branch not taken");
	machine.reg[RES] = schemeVoid ;
	If_Done_12083:

	DEBUG_TRACE("end: if: (if #f #f \'void)") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: lambda: (lambda (void-object) (lambda () void-object))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_12087 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_12088;
	Closure_Code_12087:
	FUNCTION_ENTER("(lambda (void-object) (lambda () void-object))");
	RUNTIME_ASSERT(STACK_ARGC() == 1) ;
	DEBUG_TRACE("start: lambda: (lambda () void-object)") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_12085 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_12086;
	Closure_Code_12085:
	FUNCTION_ENTER("(lambda () void-object)");
	RUNTIME_ASSERT(STACK_ARGC() == 0) ;
	DEBUG_TRACE("start: var bound: void-object") ;
	machine.reg[RES] = getBoundVar (STACK_ENV(), 0, 0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var bound: void-object") ;
	FUNCTION_EXIT ("(lambda () void-object)");
	Continue_12086:
	DEBUG_TRACE("end: lambda: (lambda () void-object)") ;
	FUNCTION_EXIT ("(lambda (void-object) (lambda () void-object))");
	Continue_12088:
	DEBUG_TRACE("end: lambda: (lambda (void-object) (lambda () void-object))") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_12084) ;
	ret_from_app_12084:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: ((lambda (void-object) (lambda () void-object)) (if #f #f \'void))") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("void") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define void ((lambda (void-object) (lambda () void-object)) (if #f #f \'void)))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_12081:
	
	pushDummyFrame(&&exit_12089) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define void\? ((lambda (void-object) (lambda (x) (eq\? x void-object))) (void))) **********") ;
	DEBUG_TRACE("start: def: (define void\? ((lambda (void-object) (lambda (x) (eq\? x void-object))) (void)))") ;
	DEBUG_TRACE("start: application: ((lambda (void-object) (lambda (x) (eq\? x void-object))) (void))") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: application: (void)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	/* calculating the closure */
	DEBUG_TRACE("start: var free: void") ;
	machine.reg[RES] = getSymbol("void") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: void") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 0, machine.reg[1], &&ret_from_app_12090) ;
	ret_from_app_12090:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (void)") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: lambda: (lambda (void-object) (lambda (x) (eq\? x void-object)))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_12094 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_12095;
	Closure_Code_12094:
	FUNCTION_ENTER("(lambda (void-object) (lambda (x) (eq\? x void-object)))");
	RUNTIME_ASSERT(STACK_ARGC() == 1) ;
	DEBUG_TRACE("start: lambda: (lambda (x) (eq\? x void-object))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_12092 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_12093;
	Closure_Code_12092:
	FUNCTION_ENTER("(lambda (x) (eq\? x void-object))");
	RUNTIME_ASSERT(STACK_ARGC() == 1) ;
	DEBUG_TRACE("start: app tp: (eq\? x void-object)") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: var bound: void-object") ;
	machine.reg[RES] = getBoundVar (STACK_ENV(), 0, 0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var bound: void-object") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: x") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: x") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: var free: eq\?") ;
	machine.reg[RES] = getSymbol("eq?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: eq\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 2 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	machine.stack[machine.fp+2] = machine.stack[machine.sp+1] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +3 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 2, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: (eq\? x void-object)") ;
	FUNCTION_EXIT ("(lambda (x) (eq\? x void-object))");
	Continue_12093:
	DEBUG_TRACE("end: lambda: (lambda (x) (eq\? x void-object))") ;
	FUNCTION_EXIT ("(lambda (void-object) (lambda (x) (eq\? x void-object)))");
	Continue_12095:
	DEBUG_TRACE("end: lambda: (lambda (void-object) (lambda (x) (eq\? x void-object)))") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_12091) ;
	ret_from_app_12091:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: ((lambda (void-object) (lambda (x) (eq\? x void-object))) (void))") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("void\?") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define void\? ((lambda (void-object) (lambda (x) (eq\? x void-object))) (void)))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_12089:
	
	pushDummyFrame(&&exit_12096) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define string-append (lambda s (list->string (apply append (map string->list s))))) **********") ;
	DEBUG_TRACE("start: def: (define string-append (lambda s (list->string (apply append (map string->list s)))))") ;
	DEBUG_TRACE("start: lambda opt: (lambda s (list->string (apply append (map string->list s))))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[0]) ;
	machine.reg[1] = makeLocalEnv(STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[0] = extendEnv((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure(machine.reg[0], &&Closure_Code_12097) ;
	goto Continue_12098 ;
	Closure_Code_12097:
	FUNCTION_ENTER("(lambda s (list->string (apply append (map string->list s))))") ;
	RUNTIME_ASSERT(STACK_ARGC() >= 0) ;
	push((void*)machine.reg[0]) ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	push((void*)machine.reg[3]) ;
	/* backups since shifting the frame changes argc */
	machine.reg[1] = (void*)STACK_ARGC() ;
	machine.reg[1] = (void*)((Amount)machine.reg[1] - 0) ; /* amount of optional args */
	machine.reg[3] = (void*)(STACK_FRAME_SIZE()+4) ;
	machine.reg[0] = stackToSchemeList(STACK_ARGS()-0, (Amount)machine.reg[1]) ;
	/* shift_frame_up */
	machine.reg[2] = (void*)(machine.sp) ; /* loop counter */
	shift_frame_up_loop_start_12100:
	if (!((Amount)machine.reg[2] >= machine.sp-(Amount)machine.reg[3]+1)) goto shift_frame_up_loop_end_12101 ;
	machine.stack[(Amount)machine.reg[2]] = machine.stack[(Amount)machine.reg[2]-1] ;
	machine.reg[2] = (void*)((Amount)machine.reg[2] - 1) ; /* step */
	goto shift_frame_up_loop_start_12100 ;
	shift_frame_up_loop_end_12101:
	machine.fp += 1 ;
	goto after_frame_shift_12099 ;
	after_frame_shift_12099:
	machine.sp = machine.fp+4 ;
	machine.stack[machine.fp-4] = machine.stack[machine.fp-4]+1 ; /* fix ARGC, basically, STACK_ARGC() -= ... */
	*(STACK_ARGS()-0) = machine.reg[0] ; /* fix last argument */
	machine.reg[3] = pop() ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("start: app tp: (list->string (apply append (map string->list s)))") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: application: (apply append (map string->list s))") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: application: (map string->list s)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: s") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var free: string->list") ;
	machine.reg[RES] = getSymbol("string->list") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: string->list") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: map") ;
	machine.reg[RES] = getSymbol("map") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: map") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_12102) ;
	ret_from_app_12102:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (map string->list s)") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var free: append") ;
	machine.reg[RES] = getSymbol("append") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: append") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: apply") ;
	machine.reg[RES] = getSymbol("apply") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: apply") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_12103) ;
	ret_from_app_12103:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (apply append (map string->list s))") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: var free: list->string") ;
	machine.reg[RES] = getSymbol("list->string") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: list->string") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 1 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +2 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 1, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: (list->string (apply append (map string->list s)))") ;
	FUNCTION_EXIT("(lambda s (list->string (apply append (map string->list s))))") ;
	Continue_12098:
	machine.reg[0] = pop() ;
	machine.reg[1] = pop() ;
	DEBUG_TRACE("end: lambda opt: (lambda s (list->string (apply append (map string->list s))))") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("string-append") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define string-append (lambda s (list->string (apply append (map string->list s)))))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_12096:
	
	pushDummyFrame(&&exit_12104) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define vector-append (lambda s (list->vector (apply append (map vector->list s))))) **********") ;
	DEBUG_TRACE("start: def: (define vector-append (lambda s (list->vector (apply append (map vector->list s)))))") ;
	DEBUG_TRACE("start: lambda opt: (lambda s (list->vector (apply append (map vector->list s))))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[0]) ;
	machine.reg[1] = makeLocalEnv(STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[0] = extendEnv((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure(machine.reg[0], &&Closure_Code_12105) ;
	goto Continue_12106 ;
	Closure_Code_12105:
	FUNCTION_ENTER("(lambda s (list->vector (apply append (map vector->list s))))") ;
	RUNTIME_ASSERT(STACK_ARGC() >= 0) ;
	push((void*)machine.reg[0]) ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	push((void*)machine.reg[3]) ;
	/* backups since shifting the frame changes argc */
	machine.reg[1] = (void*)STACK_ARGC() ;
	machine.reg[1] = (void*)((Amount)machine.reg[1] - 0) ; /* amount of optional args */
	machine.reg[3] = (void*)(STACK_FRAME_SIZE()+4) ;
	machine.reg[0] = stackToSchemeList(STACK_ARGS()-0, (Amount)machine.reg[1]) ;
	/* shift_frame_up */
	machine.reg[2] = (void*)(machine.sp) ; /* loop counter */
	shift_frame_up_loop_start_12108:
	if (!((Amount)machine.reg[2] >= machine.sp-(Amount)machine.reg[3]+1)) goto shift_frame_up_loop_end_12109 ;
	machine.stack[(Amount)machine.reg[2]] = machine.stack[(Amount)machine.reg[2]-1] ;
	machine.reg[2] = (void*)((Amount)machine.reg[2] - 1) ; /* step */
	goto shift_frame_up_loop_start_12108 ;
	shift_frame_up_loop_end_12109:
	machine.fp += 1 ;
	goto after_frame_shift_12107 ;
	after_frame_shift_12107:
	machine.sp = machine.fp+4 ;
	machine.stack[machine.fp-4] = machine.stack[machine.fp-4]+1 ; /* fix ARGC, basically, STACK_ARGC() -= ... */
	*(STACK_ARGS()-0) = machine.reg[0] ; /* fix last argument */
	machine.reg[3] = pop() ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("start: app tp: (list->vector (apply append (map vector->list s)))") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: application: (apply append (map vector->list s))") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: application: (map vector->list s)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: s") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var free: vector->list") ;
	machine.reg[RES] = getSymbol("vector->list") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: vector->list") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: map") ;
	machine.reg[RES] = getSymbol("map") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: map") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_12110) ;
	ret_from_app_12110:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (map vector->list s)") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var free: append") ;
	machine.reg[RES] = getSymbol("append") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: append") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: apply") ;
	machine.reg[RES] = getSymbol("apply") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: apply") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_12111) ;
	ret_from_app_12111:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (apply append (map vector->list s))") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: var free: list->vector") ;
	machine.reg[RES] = getSymbol("list->vector") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: list->vector") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 1 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +2 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 1, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: (list->vector (apply append (map vector->list s)))") ;
	FUNCTION_EXIT("(lambda s (list->vector (apply append (map vector->list s))))") ;
	Continue_12106:
	machine.reg[0] = pop() ;
	machine.reg[1] = pop() ;
	DEBUG_TRACE("end: lambda opt: (lambda s (list->vector (apply append (map vector->list s))))") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("vector-append") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define vector-append (lambda s (list->vector (apply append (map vector->list s)))))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_12104:
	
	pushDummyFrame(&&exit_12112) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define append ((lambda (binary-append) (begin (set! binary-append (box binary-append)) (vector-set! binary-append 0 (lambda (s1 s2) (if (null\? s1) s2 (cons (car s1) ((vector-ref binary-append 0) (cdr s1) s2))))) ((lambda () (lambda s (foldr (vector-ref binary-append 0) \'() s)))))) #f)) **********") ;
	DEBUG_TRACE("start: def: (define append ((lambda (binary-append) (begin (set! binary-append (box binary-append)) (vector-set! binary-append 0 (lambda (s1 s2) (if (null\? s1) s2 (cons (car s1) ((vector-ref binary-append 0) (cdr s1) s2))))) ((lambda () (lambda s (foldr (vector-ref binary-append 0) \'() s)))))) #f))") ;
	DEBUG_TRACE("start: application: ((lambda (binary-append) (begin (set! binary-append (box binary-append)) (vector-set! binary-append 0 (lambda (s1 s2) (if (null\? s1) s2 (cons (car s1) ((vector-ref binary-append 0) (cdr s1) s2))))) ((lambda () (lambda s (foldr (vector-ref binary-append 0) \'() s)))))) #f)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	machine.reg[RES] = makeSchemeBool(FALSE);
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: lambda: (lambda (binary-append) (begin (set! binary-append (box binary-append)) (vector-set! binary-append 0 (lambda (s1 s2) (if (null\? s1) s2 (cons (car s1) ((vector-ref binary-append 0) (cdr s1) s2))))) ((lambda () (lambda s (foldr (vector-ref binary-append 0) \'() s))))))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_12133 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_12134;
	Closure_Code_12133:
	FUNCTION_ENTER("(lambda (binary-append) (begin (set! binary-append (box binary-append)) (vector-set! binary-append 0 (lambda (s1 s2) (if (null\? s1) s2 (cons (car s1) ((vector-ref binary-append 0) (cdr s1) s2))))) ((lambda () (lambda s (foldr (vector-ref binary-append 0) \'() s))))))");
	RUNTIME_ASSERT(STACK_ARGC() == 1) ;
	DEBUG_TRACE("start: sequence: (begin (set! binary-append (box binary-append)) (vector-set! binary-append 0 (lambda (s1 s2) (if (null\? s1) s2 (cons (car s1) ((vector-ref binary-append 0) (cdr s1) s2))))) ((lambda () (lambda s (foldr (vector-ref binary-append 0) \'() s)))))") ;
	/* start new begin statement */
	DEBUG_TRACE("start: set: (set! binary-append (box binary-append))") ;
	DEBUG_TRACE("start: application: (box binary-append)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: binary-append") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: binary-append") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: box") ;
	machine.reg[RES] = getSymbol("box") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: box") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_12114) ;
	ret_from_app_12114:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (box binary-append)") ;
	*(STACK_ARGS()-0) = machine.reg[RES] ;
	machine.reg[RES] = makeSchemeVoid() ;
	DEBUG_TRACE("end: set: (set! binary-append (box binary-append))") ;
	/* start new begin statement */
	DEBUG_TRACE("start: application: (vector-set! binary-append 0 (lambda (s1 s2) (if (null\? s1) s2 (cons (car s1) ((vector-ref binary-append 0) (cdr s1) s2)))))") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: lambda: (lambda (s1 s2) (if (null\? s1) s2 (cons (car s1) ((vector-ref binary-append 0) (cdr s1) s2))))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_12122 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_12123;
	Closure_Code_12122:
	FUNCTION_ENTER("(lambda (s1 s2) (if (null\? s1) s2 (cons (car s1) ((vector-ref binary-append 0) (cdr s1) s2))))");
	RUNTIME_ASSERT(STACK_ARGC() == 2) ;
	DEBUG_TRACE("start: if: (if (null\? s1) s2 (cons (car s1) ((vector-ref binary-append 0) (cdr s1) s2)))") ;

	DEBUG_TRACE("start: application: (null\? s1)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: s1") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s1") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: null\?") ;
	machine.reg[RES] = getSymbol("null?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: null\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_12115) ;
	ret_from_app_12115:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (null\? s1)") ;
	if (sobIsFalse(machine.reg[RES])) goto If_Else_12120;
	DEBUG_NOTICE("branch taken");
	DEBUG_TRACE("start: var param: s2") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s2") ;
	goto If_Done_12121;
	If_Else_12120:
	DEBUG_NOTICE("branch not taken");
	DEBUG_TRACE("start: app tp: (cons (car s1) ((vector-ref binary-append 0) (cdr s1) s2))") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: application: ((vector-ref binary-append 0) (cdr s1) s2)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: s2") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s2") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: application: (cdr s1)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: s1") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s1") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: cdr") ;
	machine.reg[RES] = getSymbol("cdr") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: cdr") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_12116) ;
	ret_from_app_12116:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (cdr s1)") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: application: (vector-ref binary-append 0)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	machine.reg[RES] = makeSchemeInt(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var bound: binary-append") ;
	machine.reg[RES] = getBoundVar (STACK_ENV(), 0, 0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var bound: binary-append") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: vector-ref") ;
	machine.reg[RES] = getSymbol("vector-ref") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: vector-ref") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_12118) ;
	ret_from_app_12118:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (vector-ref binary-append 0)") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_12117) ;
	ret_from_app_12117:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: ((vector-ref binary-append 0) (cdr s1) s2)") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: application: (car s1)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: s1") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s1") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: car") ;
	machine.reg[RES] = getSymbol("car") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: car") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_12119) ;
	ret_from_app_12119:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (car s1)") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: var free: cons") ;
	machine.reg[RES] = getSymbol("cons") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: cons") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 2 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	machine.stack[machine.fp+2] = machine.stack[machine.sp+1] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +3 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 2, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: (cons (car s1) ((vector-ref binary-append 0) (cdr s1) s2))") ;
	If_Done_12121:

	DEBUG_TRACE("end: if: (if (null\? s1) s2 (cons (car s1) ((vector-ref binary-append 0) (cdr s1) s2)))") ;
	FUNCTION_EXIT ("(lambda (s1 s2) (if (null\? s1) s2 (cons (car s1) ((vector-ref binary-append 0) (cdr s1) s2))))");
	Continue_12123:
	DEBUG_TRACE("end: lambda: (lambda (s1 s2) (if (null\? s1) s2 (cons (car s1) ((vector-ref binary-append 0) (cdr s1) s2))))") ;
	push((void*)machine.reg[RES]) ;
	machine.reg[RES] = makeSchemeInt(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: binary-append") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: binary-append") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: vector-set!") ;
	machine.reg[RES] = getSymbol("vector-set!") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: vector-set!") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 3, machine.reg[1], &&ret_from_app_12124) ;
	ret_from_app_12124:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (vector-set! binary-append 0 (lambda (s1 s2) (if (null\? s1) s2 (cons (car s1) ((vector-ref binary-append 0) (cdr s1) s2)))))") ;
	/* start new begin statement */
	DEBUG_TRACE("start: app tp: ((lambda () (lambda s (foldr (vector-ref binary-append 0) \'() s))))") ;
	/* Start of Pushing args */
	/* End of Pushing args */
	DEBUG_TRACE("start: lambda: (lambda () (lambda s (foldr (vector-ref binary-append 0) \'() s)))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_12131 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_12132;
	Closure_Code_12131:
	FUNCTION_ENTER("(lambda () (lambda s (foldr (vector-ref binary-append 0) \'() s)))");
	RUNTIME_ASSERT(STACK_ARGC() == 0) ;
	DEBUG_TRACE("start: lambda opt: (lambda s (foldr (vector-ref binary-append 0) \'() s))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[0]) ;
	machine.reg[1] = makeLocalEnv(STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[0] = extendEnv((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure(machine.reg[0], &&Closure_Code_12125) ;
	goto Continue_12126 ;
	Closure_Code_12125:
	FUNCTION_ENTER("(lambda s (foldr (vector-ref binary-append 0) \'() s))") ;
	RUNTIME_ASSERT(STACK_ARGC() >= 0) ;
	push((void*)machine.reg[0]) ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	push((void*)machine.reg[3]) ;
	/* backups since shifting the frame changes argc */
	machine.reg[1] = (void*)STACK_ARGC() ;
	machine.reg[1] = (void*)((Amount)machine.reg[1] - 0) ; /* amount of optional args */
	machine.reg[3] = (void*)(STACK_FRAME_SIZE()+4) ;
	machine.reg[0] = stackToSchemeList(STACK_ARGS()-0, (Amount)machine.reg[1]) ;
	/* shift_frame_up */
	machine.reg[2] = (void*)(machine.sp) ; /* loop counter */
	shift_frame_up_loop_start_12128:
	if (!((Amount)machine.reg[2] >= machine.sp-(Amount)machine.reg[3]+1)) goto shift_frame_up_loop_end_12129 ;
	machine.stack[(Amount)machine.reg[2]] = machine.stack[(Amount)machine.reg[2]-1] ;
	machine.reg[2] = (void*)((Amount)machine.reg[2] - 1) ; /* step */
	goto shift_frame_up_loop_start_12128 ;
	shift_frame_up_loop_end_12129:
	machine.fp += 1 ;
	goto after_frame_shift_12127 ;
	after_frame_shift_12127:
	machine.sp = machine.fp+4 ;
	machine.stack[machine.fp-4] = machine.stack[machine.fp-4]+1 ; /* fix ARGC, basically, STACK_ARGC() -= ... */
	*(STACK_ARGS()-0) = machine.reg[0] ; /* fix last argument */
	machine.reg[3] = pop() ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("start: app tp: (foldr (vector-ref binary-append 0) \'() s)") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: var param: s") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s") ;
	push((void*)machine.reg[RES]) ;
	machine.reg[RES] = schemeNil ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: application: (vector-ref binary-append 0)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	machine.reg[RES] = makeSchemeInt(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var bound: binary-append") ;
	machine.reg[RES] = getBoundVar (STACK_ENV(), 1, 0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var bound: binary-append") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: vector-ref") ;
	machine.reg[RES] = getSymbol("vector-ref") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: vector-ref") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_12130) ;
	ret_from_app_12130:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (vector-ref binary-append 0)") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: var free: foldr") ;
	machine.reg[RES] = getSymbol("foldr") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: foldr") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 3 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	machine.stack[machine.fp+2] = machine.stack[machine.sp+1] ;
	machine.stack[machine.fp+3] = machine.stack[machine.sp+2] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +4 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 3, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: (foldr (vector-ref binary-append 0) \'() s)") ;
	FUNCTION_EXIT("(lambda s (foldr (vector-ref binary-append 0) \'() s))") ;
	Continue_12126:
	machine.reg[0] = pop() ;
	machine.reg[1] = pop() ;
	DEBUG_TRACE("end: lambda opt: (lambda s (foldr (vector-ref binary-append 0) \'() s))") ;
	FUNCTION_EXIT ("(lambda () (lambda s (foldr (vector-ref binary-append 0) \'() s)))");
	Continue_12132:
	DEBUG_TRACE("end: lambda: (lambda () (lambda s (foldr (vector-ref binary-append 0) \'() s)))") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 0 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	/* End of overwriting old frame */
	machine.sp = machine.fp +1 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 0, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: ((lambda () (lambda s (foldr (vector-ref binary-append 0) \'() s))))") ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: sequence: (begin (set! binary-append (box binary-append)) (vector-set! binary-append 0 (lambda (s1 s2) (if (null\? s1) s2 (cons (car s1) ((vector-ref binary-append 0) (cdr s1) s2))))) ((lambda () (lambda s (foldr (vector-ref binary-append 0) \'() s)))))") ;
	FUNCTION_EXIT ("(lambda (binary-append) (begin (set! binary-append (box binary-append)) (vector-set! binary-append 0 (lambda (s1 s2) (if (null\? s1) s2 (cons (car s1) ((vector-ref binary-append 0) (cdr s1) s2))))) ((lambda () (lambda s (foldr (vector-ref binary-append 0) \'() s))))))");
	Continue_12134:
	DEBUG_TRACE("end: lambda: (lambda (binary-append) (begin (set! binary-append (box binary-append)) (vector-set! binary-append 0 (lambda (s1 s2) (if (null\? s1) s2 (cons (car s1) ((vector-ref binary-append 0) (cdr s1) s2))))) ((lambda () (lambda s (foldr (vector-ref binary-append 0) \'() s))))))") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_12113) ;
	ret_from_app_12113:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: ((lambda (binary-append) (begin (set! binary-append (box binary-append)) (vector-set! binary-append 0 (lambda (s1 s2) (if (null\? s1) s2 (cons (car s1) ((vector-ref binary-append 0) (cdr s1) s2))))) ((lambda () (lambda s (foldr (vector-ref binary-append 0) \'() s)))))) #f)") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("append") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define append ((lambda (binary-append) (begin (set! binary-append (box binary-append)) (vector-set! binary-append 0 (lambda (s1 s2) (if (null\? s1) s2 (cons (car s1) ((vector-ref binary-append 0) (cdr s1) s2))))) ((lambda () (lambda s (foldr (vector-ref binary-append 0) \'() s)))))) #f))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_12112:
	
	pushDummyFrame(&&exit_12135) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define reverse ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s r) (if (null\? s) r ((vector-ref loop 0) (cdr s) (cons (car s) r))))) ((lambda () (lambda (s) ((vector-ref loop 0) s \'())))))) #f)) **********") ;
	DEBUG_TRACE("start: def: (define reverse ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s r) (if (null\? s) r ((vector-ref loop 0) (cdr s) (cons (car s) r))))) ((lambda () (lambda (s) ((vector-ref loop 0) s \'())))))) #f))") ;
	DEBUG_TRACE("start: application: ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s r) (if (null\? s) r ((vector-ref loop 0) (cdr s) (cons (car s) r))))) ((lambda () (lambda (s) ((vector-ref loop 0) s \'())))))) #f)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	machine.reg[RES] = makeSchemeBool(FALSE);
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: lambda: (lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s r) (if (null\? s) r ((vector-ref loop 0) (cdr s) (cons (car s) r))))) ((lambda () (lambda (s) ((vector-ref loop 0) s \'()))))))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_12153 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_12154;
	Closure_Code_12153:
	FUNCTION_ENTER("(lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s r) (if (null\? s) r ((vector-ref loop 0) (cdr s) (cons (car s) r))))) ((lambda () (lambda (s) ((vector-ref loop 0) s \'()))))))");
	RUNTIME_ASSERT(STACK_ARGC() == 1) ;
	DEBUG_TRACE("start: sequence: (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s r) (if (null\? s) r ((vector-ref loop 0) (cdr s) (cons (car s) r))))) ((lambda () (lambda (s) ((vector-ref loop 0) s \'())))))") ;
	/* start new begin statement */
	DEBUG_TRACE("start: set: (set! loop (box loop))") ;
	DEBUG_TRACE("start: application: (box loop)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: loop") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: loop") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: box") ;
	machine.reg[RES] = getSymbol("box") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: box") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_12137) ;
	ret_from_app_12137:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (box loop)") ;
	*(STACK_ARGS()-0) = machine.reg[RES] ;
	machine.reg[RES] = makeSchemeVoid() ;
	DEBUG_TRACE("end: set: (set! loop (box loop))") ;
	/* start new begin statement */
	DEBUG_TRACE("start: application: (vector-set! loop 0 (lambda (s r) (if (null\? s) r ((vector-ref loop 0) (cdr s) (cons (car s) r)))))") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: lambda: (lambda (s r) (if (null\? s) r ((vector-ref loop 0) (cdr s) (cons (car s) r))))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_12145 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_12146;
	Closure_Code_12145:
	FUNCTION_ENTER("(lambda (s r) (if (null\? s) r ((vector-ref loop 0) (cdr s) (cons (car s) r))))");
	RUNTIME_ASSERT(STACK_ARGC() == 2) ;
	DEBUG_TRACE("start: if: (if (null\? s) r ((vector-ref loop 0) (cdr s) (cons (car s) r)))") ;

	DEBUG_TRACE("start: application: (null\? s)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: s") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: null\?") ;
	machine.reg[RES] = getSymbol("null?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: null\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_12138) ;
	ret_from_app_12138:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (null\? s)") ;
	if (sobIsFalse(machine.reg[RES])) goto If_Else_12143;
	DEBUG_NOTICE("branch taken");
	DEBUG_TRACE("start: var param: r") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: r") ;
	goto If_Done_12144;
	If_Else_12143:
	DEBUG_NOTICE("branch not taken");
	DEBUG_TRACE("start: app tp: ((vector-ref loop 0) (cdr s) (cons (car s) r))") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: application: (cons (car s) r)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: r") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: r") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: application: (car s)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: s") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: car") ;
	machine.reg[RES] = getSymbol("car") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: car") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_12139) ;
	ret_from_app_12139:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (car s)") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: cons") ;
	machine.reg[RES] = getSymbol("cons") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: cons") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_12140) ;
	ret_from_app_12140:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (cons (car s) r)") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: application: (cdr s)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: s") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: cdr") ;
	machine.reg[RES] = getSymbol("cdr") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: cdr") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_12141) ;
	ret_from_app_12141:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (cdr s)") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: application: (vector-ref loop 0)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	machine.reg[RES] = makeSchemeInt(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var bound: loop") ;
	machine.reg[RES] = getBoundVar (STACK_ENV(), 0, 0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var bound: loop") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: vector-ref") ;
	machine.reg[RES] = getSymbol("vector-ref") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: vector-ref") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_12142) ;
	ret_from_app_12142:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (vector-ref loop 0)") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 2 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	machine.stack[machine.fp+2] = machine.stack[machine.sp+1] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +3 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 2, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: ((vector-ref loop 0) (cdr s) (cons (car s) r))") ;
	If_Done_12144:

	DEBUG_TRACE("end: if: (if (null\? s) r ((vector-ref loop 0) (cdr s) (cons (car s) r)))") ;
	FUNCTION_EXIT ("(lambda (s r) (if (null\? s) r ((vector-ref loop 0) (cdr s) (cons (car s) r))))");
	Continue_12146:
	DEBUG_TRACE("end: lambda: (lambda (s r) (if (null\? s) r ((vector-ref loop 0) (cdr s) (cons (car s) r))))") ;
	push((void*)machine.reg[RES]) ;
	machine.reg[RES] = makeSchemeInt(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: loop") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: loop") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: vector-set!") ;
	machine.reg[RES] = getSymbol("vector-set!") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: vector-set!") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 3, machine.reg[1], &&ret_from_app_12147) ;
	ret_from_app_12147:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (vector-set! loop 0 (lambda (s r) (if (null\? s) r ((vector-ref loop 0) (cdr s) (cons (car s) r)))))") ;
	/* start new begin statement */
	DEBUG_TRACE("start: app tp: ((lambda () (lambda (s) ((vector-ref loop 0) s \'()))))") ;
	/* Start of Pushing args */
	/* End of Pushing args */
	DEBUG_TRACE("start: lambda: (lambda () (lambda (s) ((vector-ref loop 0) s \'())))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_12151 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_12152;
	Closure_Code_12151:
	FUNCTION_ENTER("(lambda () (lambda (s) ((vector-ref loop 0) s \'())))");
	RUNTIME_ASSERT(STACK_ARGC() == 0) ;
	DEBUG_TRACE("start: lambda: (lambda (s) ((vector-ref loop 0) s \'()))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_12149 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_12150;
	Closure_Code_12149:
	FUNCTION_ENTER("(lambda (s) ((vector-ref loop 0) s \'()))");
	RUNTIME_ASSERT(STACK_ARGC() == 1) ;
	DEBUG_TRACE("start: app tp: ((vector-ref loop 0) s \'())") ;
	/* Start of Pushing args */
	machine.reg[RES] = schemeNil ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: s") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: application: (vector-ref loop 0)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	machine.reg[RES] = makeSchemeInt(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var bound: loop") ;
	machine.reg[RES] = getBoundVar (STACK_ENV(), 1, 0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var bound: loop") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: vector-ref") ;
	machine.reg[RES] = getSymbol("vector-ref") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: vector-ref") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_12148) ;
	ret_from_app_12148:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (vector-ref loop 0)") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 2 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	machine.stack[machine.fp+2] = machine.stack[machine.sp+1] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +3 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 2, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: ((vector-ref loop 0) s \'())") ;
	FUNCTION_EXIT ("(lambda (s) ((vector-ref loop 0) s \'()))");
	Continue_12150:
	DEBUG_TRACE("end: lambda: (lambda (s) ((vector-ref loop 0) s \'()))") ;
	FUNCTION_EXIT ("(lambda () (lambda (s) ((vector-ref loop 0) s \'())))");
	Continue_12152:
	DEBUG_TRACE("end: lambda: (lambda () (lambda (s) ((vector-ref loop 0) s \'())))") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 0 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	/* End of overwriting old frame */
	machine.sp = machine.fp +1 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 0, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: ((lambda () (lambda (s) ((vector-ref loop 0) s \'()))))") ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: sequence: (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s r) (if (null\? s) r ((vector-ref loop 0) (cdr s) (cons (car s) r))))) ((lambda () (lambda (s) ((vector-ref loop 0) s \'())))))") ;
	FUNCTION_EXIT ("(lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s r) (if (null\? s) r ((vector-ref loop 0) (cdr s) (cons (car s) r))))) ((lambda () (lambda (s) ((vector-ref loop 0) s \'()))))))");
	Continue_12154:
	DEBUG_TRACE("end: lambda: (lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s r) (if (null\? s) r ((vector-ref loop 0) (cdr s) (cons (car s) r))))) ((lambda () (lambda (s) ((vector-ref loop 0) s \'()))))))") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_12136) ;
	ret_from_app_12136:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s r) (if (null\? s) r ((vector-ref loop 0) (cdr s) (cons (car s) r))))) ((lambda () (lambda (s) ((vector-ref loop 0) s \'())))))) #f)") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("reverse") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define reverse ((lambda (loop) (begin (set! loop (box loop)) (vector-set! loop 0 (lambda (s r) (if (null\? s) r ((vector-ref loop 0) (cdr s) (cons (car s) r))))) ((lambda () (lambda (s) ((vector-ref loop 0) s \'())))))) #f))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_12135:
	
	pushDummyFrame(&&exit_12155) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define string-reverse (compose list->string reverse string->list)) **********") ;
	DEBUG_TRACE("start: def: (define string-reverse (compose list->string reverse string->list))") ;
	DEBUG_TRACE("start: application: (compose list->string reverse string->list)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var free: string->list") ;
	machine.reg[RES] = getSymbol("string->list") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: string->list") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var free: reverse") ;
	machine.reg[RES] = getSymbol("reverse") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: reverse") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var free: list->string") ;
	machine.reg[RES] = getSymbol("list->string") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: list->string") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: compose") ;
	machine.reg[RES] = getSymbol("compose") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: compose") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 3, machine.reg[1], &&ret_from_app_12156) ;
	ret_from_app_12156:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (compose list->string reverse string->list)") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("string-reverse") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define string-reverse (compose list->string reverse string->list))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_12155:
	
	pushDummyFrame(&&exit_12157) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define list-ref (lambda (s i) (if (zero\? i) (car s) (list-ref (cdr s) (- i 1))))) **********") ;
	DEBUG_TRACE("start: def: (define list-ref (lambda (s i) (if (zero\? i) (car s) (list-ref (cdr s) (- i 1)))))") ;
	DEBUG_TRACE("start: lambda: (lambda (s i) (if (zero\? i) (car s) (list-ref (cdr s) (- i 1))))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_12163 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_12164;
	Closure_Code_12163:
	FUNCTION_ENTER("(lambda (s i) (if (zero\? i) (car s) (list-ref (cdr s) (- i 1))))");
	RUNTIME_ASSERT(STACK_ARGC() == 2) ;
	DEBUG_TRACE("start: if: (if (zero\? i) (car s) (list-ref (cdr s) (- i 1)))") ;

	DEBUG_TRACE("start: application: (zero\? i)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: i") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: i") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: zero\?") ;
	machine.reg[RES] = getSymbol("zero?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: zero\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_12158) ;
	ret_from_app_12158:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (zero\? i)") ;
	if (sobIsFalse(machine.reg[RES])) goto If_Else_12161;
	DEBUG_NOTICE("branch taken");
	DEBUG_TRACE("start: app tp: (car s)") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: var param: s") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: var free: car") ;
	machine.reg[RES] = getSymbol("car") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: car") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 1 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +2 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 1, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: (car s)") ;
	goto If_Done_12162;
	If_Else_12161:
	DEBUG_NOTICE("branch not taken");
	DEBUG_TRACE("start: app tp: (list-ref (cdr s) (- i 1))") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: application: (- i 1)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	machine.reg[RES] = makeSchemeInt(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: i") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: i") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: -") ;
	machine.reg[RES] = getSymbol("-") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: -") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_12159) ;
	ret_from_app_12159:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (- i 1)") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: application: (cdr s)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: s") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: cdr") ;
	machine.reg[RES] = getSymbol("cdr") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: cdr") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_12160) ;
	ret_from_app_12160:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (cdr s)") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: var free: list-ref") ;
	machine.reg[RES] = getSymbol("list-ref") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: list-ref") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 2 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	machine.stack[machine.fp+2] = machine.stack[machine.sp+1] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +3 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 2, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: (list-ref (cdr s) (- i 1))") ;
	If_Done_12162:

	DEBUG_TRACE("end: if: (if (zero\? i) (car s) (list-ref (cdr s) (- i 1)))") ;
	FUNCTION_EXIT ("(lambda (s i) (if (zero\? i) (car s) (list-ref (cdr s) (- i 1))))");
	Continue_12164:
	DEBUG_TRACE("end: lambda: (lambda (s i) (if (zero\? i) (car s) (list-ref (cdr s) (- i 1))))") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("list-ref") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define list-ref (lambda (s i) (if (zero\? i) (car s) (list-ref (cdr s) (- i 1)))))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_12157:
	
	pushDummyFrame(&&exit_12165) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define list-set! (lambda (s i x) (if (zero\? i) (set-car! s x) (list-set! (cdr s) (- i 1) x)))) **********") ;
	DEBUG_TRACE("start: def: (define list-set! (lambda (s i x) (if (zero\? i) (set-car! s x) (list-set! (cdr s) (- i 1) x))))") ;
	DEBUG_TRACE("start: lambda: (lambda (s i x) (if (zero\? i) (set-car! s x) (list-set! (cdr s) (- i 1) x)))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_12171 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_12172;
	Closure_Code_12171:
	FUNCTION_ENTER("(lambda (s i x) (if (zero\? i) (set-car! s x) (list-set! (cdr s) (- i 1) x)))");
	RUNTIME_ASSERT(STACK_ARGC() == 3) ;
	DEBUG_TRACE("start: if: (if (zero\? i) (set-car! s x) (list-set! (cdr s) (- i 1) x))") ;

	DEBUG_TRACE("start: application: (zero\? i)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: i") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: i") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: zero\?") ;
	machine.reg[RES] = getSymbol("zero?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: zero\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_12166) ;
	ret_from_app_12166:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (zero\? i)") ;
	if (sobIsFalse(machine.reg[RES])) goto If_Else_12169;
	DEBUG_NOTICE("branch taken");
	DEBUG_TRACE("start: app tp: (set-car! s x)") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: var param: x") ;
	machine.reg[RES] = STACK_ARGV(2) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: x") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: s") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: var free: set-car!") ;
	machine.reg[RES] = getSymbol("set-car!") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: set-car!") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 2 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	machine.stack[machine.fp+2] = machine.stack[machine.sp+1] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +3 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 2, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: (set-car! s x)") ;
	goto If_Done_12170;
	If_Else_12169:
	DEBUG_NOTICE("branch not taken");
	DEBUG_TRACE("start: app tp: (list-set! (cdr s) (- i 1) x)") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: var param: x") ;
	machine.reg[RES] = STACK_ARGV(2) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: x") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: application: (- i 1)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	machine.reg[RES] = makeSchemeInt(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: i") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: i") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: -") ;
	machine.reg[RES] = getSymbol("-") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: -") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_12167) ;
	ret_from_app_12167:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (- i 1)") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: application: (cdr s)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: s") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: cdr") ;
	machine.reg[RES] = getSymbol("cdr") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: cdr") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_12168) ;
	ret_from_app_12168:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (cdr s)") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: var free: list-set!") ;
	machine.reg[RES] = getSymbol("list-set!") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: list-set!") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 3 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	machine.stack[machine.fp+2] = machine.stack[machine.sp+1] ;
	machine.stack[machine.fp+3] = machine.stack[machine.sp+2] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +4 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 3, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: (list-set! (cdr s) (- i 1) x)") ;
	If_Done_12170:

	DEBUG_TRACE("end: if: (if (zero\? i) (set-car! s x) (list-set! (cdr s) (- i 1) x))") ;
	FUNCTION_EXIT ("(lambda (s i x) (if (zero\? i) (set-car! s x) (list-set! (cdr s) (- i 1) x)))");
	Continue_12172:
	DEBUG_TRACE("end: lambda: (lambda (s i x) (if (zero\? i) (set-car! s x) (list-set! (cdr s) (- i 1) x)))") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("list-set!") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define list-set! (lambda (s i x) (if (zero\? i) (set-car! s x) (list-set! (cdr s) (- i 1) x))))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_12165:
	
	pushDummyFrame(&&exit_12173) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define max ((lambda (binary-max) (lambda (a . s) (foldr binary-max a s))) (lambda (a b) (if (> a b) a b)))) **********") ;
	DEBUG_TRACE("start: def: (define max ((lambda (binary-max) (lambda (a . s) (foldr binary-max a s))) (lambda (a b) (if (> a b) a b))))") ;
	DEBUG_TRACE("start: application: ((lambda (binary-max) (lambda (a . s) (foldr binary-max a s))) (lambda (a b) (if (> a b) a b)))") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: lambda: (lambda (a b) (if (> a b) a b))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_12177 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_12178;
	Closure_Code_12177:
	FUNCTION_ENTER("(lambda (a b) (if (> a b) a b))");
	RUNTIME_ASSERT(STACK_ARGC() == 2) ;
	DEBUG_TRACE("start: if: (if (> a b) a b)") ;

	DEBUG_TRACE("start: application: (> a b)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: b") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: b") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: a") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: a") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: >") ;
	machine.reg[RES] = getSymbol(">") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: >") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_12174) ;
	ret_from_app_12174:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (> a b)") ;
	if (sobIsFalse(machine.reg[RES])) goto If_Else_12175;
	DEBUG_NOTICE("branch taken");
	DEBUG_TRACE("start: var param: a") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: a") ;
	goto If_Done_12176;
	If_Else_12175:
	DEBUG_NOTICE("branch not taken");
	DEBUG_TRACE("start: var param: b") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: b") ;
	If_Done_12176:

	DEBUG_TRACE("end: if: (if (> a b) a b)") ;
	FUNCTION_EXIT ("(lambda (a b) (if (> a b) a b))");
	Continue_12178:
	DEBUG_TRACE("end: lambda: (lambda (a b) (if (> a b) a b))") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: lambda: (lambda (binary-max) (lambda (a . s) (foldr binary-max a s)))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_12185 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_12186;
	Closure_Code_12185:
	FUNCTION_ENTER("(lambda (binary-max) (lambda (a . s) (foldr binary-max a s)))");
	RUNTIME_ASSERT(STACK_ARGC() == 1) ;
	DEBUG_TRACE("start: lambda opt: (lambda (a . s) (foldr binary-max a s))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[0]) ;
	machine.reg[1] = makeLocalEnv(STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[0] = extendEnv((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure(machine.reg[0], &&Closure_Code_12180) ;
	goto Continue_12181 ;
	Closure_Code_12180:
	FUNCTION_ENTER("(lambda (a . s) (foldr binary-max a s))") ;
	RUNTIME_ASSERT(STACK_ARGC() >= 1) ;
	push((void*)machine.reg[0]) ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	push((void*)machine.reg[3]) ;
	/* backups since shifting the frame changes argc */
	machine.reg[1] = (void*)STACK_ARGC() ;
	machine.reg[1] = (void*)((Amount)machine.reg[1] - 1) ; /* amount of optional args */
	machine.reg[3] = (void*)(STACK_FRAME_SIZE()+4) ;
	machine.reg[0] = stackToSchemeList(STACK_ARGS()-1, (Amount)machine.reg[1]) ;
	/* shift_frame_up */
	machine.reg[2] = (void*)(machine.sp) ; /* loop counter */
	shift_frame_up_loop_start_12183:
	if (!((Amount)machine.reg[2] >= machine.sp-(Amount)machine.reg[3]+1)) goto shift_frame_up_loop_end_12184 ;
	machine.stack[(Amount)machine.reg[2]] = machine.stack[(Amount)machine.reg[2]-1] ;
	machine.reg[2] = (void*)((Amount)machine.reg[2] - 1) ; /* step */
	goto shift_frame_up_loop_start_12183 ;
	shift_frame_up_loop_end_12184:
	machine.fp += 1 ;
	goto after_frame_shift_12182 ;
	after_frame_shift_12182:
	machine.sp = machine.fp+4 ;
	machine.stack[machine.fp-4] = machine.stack[machine.fp-4]+1 ; /* fix ARGC, basically, STACK_ARGC() -= ... */
	*(STACK_ARGS()-1) = machine.reg[0] ; /* fix last argument */
	machine.reg[3] = pop() ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("start: app tp: (foldr binary-max a s)") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: var param: s") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: a") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: a") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var bound: binary-max") ;
	machine.reg[RES] = getBoundVar (STACK_ENV(), 0, 0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var bound: binary-max") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: var free: foldr") ;
	machine.reg[RES] = getSymbol("foldr") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: foldr") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 3 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	machine.stack[machine.fp+2] = machine.stack[machine.sp+1] ;
	machine.stack[machine.fp+3] = machine.stack[machine.sp+2] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +4 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 3, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: (foldr binary-max a s)") ;
	FUNCTION_EXIT("(lambda (a . s) (foldr binary-max a s))") ;
	Continue_12181:
	machine.reg[0] = pop() ;
	machine.reg[1] = pop() ;
	DEBUG_TRACE("end: lambda opt: (lambda (a . s) (foldr binary-max a s))") ;
	FUNCTION_EXIT ("(lambda (binary-max) (lambda (a . s) (foldr binary-max a s)))");
	Continue_12186:
	DEBUG_TRACE("end: lambda: (lambda (binary-max) (lambda (a . s) (foldr binary-max a s)))") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_12179) ;
	ret_from_app_12179:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: ((lambda (binary-max) (lambda (a . s) (foldr binary-max a s))) (lambda (a b) (if (> a b) a b)))") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("max") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define max ((lambda (binary-max) (lambda (a . s) (foldr binary-max a s))) (lambda (a b) (if (> a b) a b))))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_12173:
	
	pushDummyFrame(&&exit_12187) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define min ((lambda (binary-min) (lambda (a . s) (foldr binary-min a s))) (lambda (a b) (if (< a b) a b)))) **********") ;
	DEBUG_TRACE("start: def: (define min ((lambda (binary-min) (lambda (a . s) (foldr binary-min a s))) (lambda (a b) (if (< a b) a b))))") ;
	DEBUG_TRACE("start: application: ((lambda (binary-min) (lambda (a . s) (foldr binary-min a s))) (lambda (a b) (if (< a b) a b)))") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: lambda: (lambda (a b) (if (< a b) a b))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_12191 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_12192;
	Closure_Code_12191:
	FUNCTION_ENTER("(lambda (a b) (if (< a b) a b))");
	RUNTIME_ASSERT(STACK_ARGC() == 2) ;
	DEBUG_TRACE("start: if: (if (< a b) a b)") ;

	DEBUG_TRACE("start: application: (< a b)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: b") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: b") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: a") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: a") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: <") ;
	machine.reg[RES] = getSymbol("<") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: <") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_12188) ;
	ret_from_app_12188:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (< a b)") ;
	if (sobIsFalse(machine.reg[RES])) goto If_Else_12189;
	DEBUG_NOTICE("branch taken");
	DEBUG_TRACE("start: var param: a") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: a") ;
	goto If_Done_12190;
	If_Else_12189:
	DEBUG_NOTICE("branch not taken");
	DEBUG_TRACE("start: var param: b") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: b") ;
	If_Done_12190:

	DEBUG_TRACE("end: if: (if (< a b) a b)") ;
	FUNCTION_EXIT ("(lambda (a b) (if (< a b) a b))");
	Continue_12192:
	DEBUG_TRACE("end: lambda: (lambda (a b) (if (< a b) a b))") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: lambda: (lambda (binary-min) (lambda (a . s) (foldr binary-min a s)))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_12199 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_12200;
	Closure_Code_12199:
	FUNCTION_ENTER("(lambda (binary-min) (lambda (a . s) (foldr binary-min a s)))");
	RUNTIME_ASSERT(STACK_ARGC() == 1) ;
	DEBUG_TRACE("start: lambda opt: (lambda (a . s) (foldr binary-min a s))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[0]) ;
	machine.reg[1] = makeLocalEnv(STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[0] = extendEnv((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure(machine.reg[0], &&Closure_Code_12194) ;
	goto Continue_12195 ;
	Closure_Code_12194:
	FUNCTION_ENTER("(lambda (a . s) (foldr binary-min a s))") ;
	RUNTIME_ASSERT(STACK_ARGC() >= 1) ;
	push((void*)machine.reg[0]) ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	push((void*)machine.reg[3]) ;
	/* backups since shifting the frame changes argc */
	machine.reg[1] = (void*)STACK_ARGC() ;
	machine.reg[1] = (void*)((Amount)machine.reg[1] - 1) ; /* amount of optional args */
	machine.reg[3] = (void*)(STACK_FRAME_SIZE()+4) ;
	machine.reg[0] = stackToSchemeList(STACK_ARGS()-1, (Amount)machine.reg[1]) ;
	/* shift_frame_up */
	machine.reg[2] = (void*)(machine.sp) ; /* loop counter */
	shift_frame_up_loop_start_12197:
	if (!((Amount)machine.reg[2] >= machine.sp-(Amount)machine.reg[3]+1)) goto shift_frame_up_loop_end_12198 ;
	machine.stack[(Amount)machine.reg[2]] = machine.stack[(Amount)machine.reg[2]-1] ;
	machine.reg[2] = (void*)((Amount)machine.reg[2] - 1) ; /* step */
	goto shift_frame_up_loop_start_12197 ;
	shift_frame_up_loop_end_12198:
	machine.fp += 1 ;
	goto after_frame_shift_12196 ;
	after_frame_shift_12196:
	machine.sp = machine.fp+4 ;
	machine.stack[machine.fp-4] = machine.stack[machine.fp-4]+1 ; /* fix ARGC, basically, STACK_ARGC() -= ... */
	*(STACK_ARGS()-1) = machine.reg[0] ; /* fix last argument */
	machine.reg[3] = pop() ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("start: app tp: (foldr binary-min a s)") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: var param: s") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: a") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: a") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var bound: binary-min") ;
	machine.reg[RES] = getBoundVar (STACK_ENV(), 0, 0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var bound: binary-min") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: var free: foldr") ;
	machine.reg[RES] = getSymbol("foldr") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: foldr") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 3 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	machine.stack[machine.fp+2] = machine.stack[machine.sp+1] ;
	machine.stack[machine.fp+3] = machine.stack[machine.sp+2] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +4 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 3, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: (foldr binary-min a s)") ;
	FUNCTION_EXIT("(lambda (a . s) (foldr binary-min a s))") ;
	Continue_12195:
	machine.reg[0] = pop() ;
	machine.reg[1] = pop() ;
	DEBUG_TRACE("end: lambda opt: (lambda (a . s) (foldr binary-min a s))") ;
	FUNCTION_EXIT ("(lambda (binary-min) (lambda (a . s) (foldr binary-min a s)))");
	Continue_12200:
	DEBUG_TRACE("end: lambda: (lambda (binary-min) (lambda (a . s) (foldr binary-min a s)))") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_12193) ;
	ret_from_app_12193:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: ((lambda (binary-min) (lambda (a . s) (foldr binary-min a s))) (lambda (a b) (if (< a b) a b)))") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("min") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define min ((lambda (binary-min) (lambda (a . s) (foldr binary-min a s))) (lambda (a b) (if (< a b) a b))))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_12187:
	
	pushDummyFrame(&&exit_12201) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define sgn (lambda (x) (if (positive\? x) 1 (if (negative\? x) -1 0)))) **********") ;
	DEBUG_TRACE("start: def: (define sgn (lambda (x) (if (positive\? x) 1 (if (negative\? x) -1 0))))") ;
	DEBUG_TRACE("start: lambda: (lambda (x) (if (positive\? x) 1 (if (negative\? x) -1 0)))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_12208 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_12209;
	Closure_Code_12208:
	FUNCTION_ENTER("(lambda (x) (if (positive\? x) 1 (if (negative\? x) -1 0)))");
	RUNTIME_ASSERT(STACK_ARGC() == 1) ;
	DEBUG_TRACE("start: if: (if (positive\? x) 1 (if (negative\? x) -1 0))") ;

	DEBUG_TRACE("start: application: (positive\? x)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: x") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: x") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: positive\?") ;
	machine.reg[RES] = getSymbol("positive?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: positive\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_12202) ;
	ret_from_app_12202:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (positive\? x)") ;
	if (sobIsFalse(machine.reg[RES])) goto If_Else_12206;
	DEBUG_NOTICE("branch taken");
	machine.reg[RES] = makeSchemeInt(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	goto If_Done_12207;
	If_Else_12206:
	DEBUG_NOTICE("branch not taken");
	DEBUG_TRACE("start: if: (if (negative\? x) -1 0)") ;

	DEBUG_TRACE("start: application: (negative\? x)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: x") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: x") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: negative\?") ;
	machine.reg[RES] = getSymbol("negative?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: negative\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_12203) ;
	ret_from_app_12203:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (negative\? x)") ;
	if (sobIsFalse(machine.reg[RES])) goto If_Else_12204;
	DEBUG_NOTICE("branch taken");
	machine.reg[RES] = makeSchemeInt(-1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	goto If_Done_12205;
	If_Else_12204:
	DEBUG_NOTICE("branch not taken");
	machine.reg[RES] = makeSchemeInt(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	If_Done_12205:

	DEBUG_TRACE("end: if: (if (negative\? x) -1 0)") ;
	If_Done_12207:

	DEBUG_TRACE("end: if: (if (positive\? x) 1 (if (negative\? x) -1 0))") ;
	FUNCTION_EXIT ("(lambda (x) (if (positive\? x) 1 (if (negative\? x) -1 0)))");
	Continue_12209:
	DEBUG_TRACE("end: lambda: (lambda (x) (if (positive\? x) 1 (if (negative\? x) -1 0)))") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("sgn") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define sgn (lambda (x) (if (positive\? x) 1 (if (negative\? x) -1 0))))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_12201:
	
	pushDummyFrame(&&exit_12210) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define abs (lambda (x) (binary-mul x (sgn x)))) **********") ;
	DEBUG_TRACE("start: def: (define abs (lambda (x) (binary-mul x (sgn x))))") ;
	DEBUG_TRACE("start: lambda: (lambda (x) (binary-mul x (sgn x)))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_12212 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_12213;
	Closure_Code_12212:
	FUNCTION_ENTER("(lambda (x) (binary-mul x (sgn x)))");
	RUNTIME_ASSERT(STACK_ARGC() == 1) ;
	DEBUG_TRACE("start: app tp: (binary-mul x (sgn x))") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: application: (sgn x)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: x") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: x") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: sgn") ;
	machine.reg[RES] = getSymbol("sgn") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: sgn") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_12211) ;
	ret_from_app_12211:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (sgn x)") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: x") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: x") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: var free: binary-mul") ;
	machine.reg[RES] = getSymbol("binary-mul") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: binary-mul") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 2 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	machine.stack[machine.fp+2] = machine.stack[machine.sp+1] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +3 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 2, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: (binary-mul x (sgn x))") ;
	FUNCTION_EXIT ("(lambda (x) (binary-mul x (sgn x)))");
	Continue_12213:
	DEBUG_TRACE("end: lambda: (lambda (x) (binary-mul x (sgn x)))") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("abs") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define abs (lambda (x) (binary-mul x (sgn x))))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_12210:
	
	pushDummyFrame(&&exit_12214) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define remainder (lambda (m n) ((lambda (abs-m abs-n sgn-m) (binary-mul sgn-m (binary-sub abs-m (binary-mul (binary-div abs-m abs-n) abs-n)))) (abs m) (abs n) (sgn m)))) **********") ;
	DEBUG_TRACE("start: def: (define remainder (lambda (m n) ((lambda (abs-m abs-n sgn-m) (binary-mul sgn-m (binary-sub abs-m (binary-mul (binary-div abs-m abs-n) abs-n)))) (abs m) (abs n) (sgn m))))") ;
	DEBUG_TRACE("start: lambda: (lambda (m n) ((lambda (abs-m abs-n sgn-m) (binary-mul sgn-m (binary-sub abs-m (binary-mul (binary-div abs-m abs-n) abs-n)))) (abs m) (abs n) (sgn m)))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_12223 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_12224;
	Closure_Code_12223:
	FUNCTION_ENTER("(lambda (m n) ((lambda (abs-m abs-n sgn-m) (binary-mul sgn-m (binary-sub abs-m (binary-mul (binary-div abs-m abs-n) abs-n)))) (abs m) (abs n) (sgn m)))");
	RUNTIME_ASSERT(STACK_ARGC() == 2) ;
	DEBUG_TRACE("start: app tp: ((lambda (abs-m abs-n sgn-m) (binary-mul sgn-m (binary-sub abs-m (binary-mul (binary-div abs-m abs-n) abs-n)))) (abs m) (abs n) (sgn m))") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: application: (sgn m)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: m") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: m") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: sgn") ;
	machine.reg[RES] = getSymbol("sgn") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: sgn") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_12215) ;
	ret_from_app_12215:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (sgn m)") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: application: (abs n)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: n") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: n") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: abs") ;
	machine.reg[RES] = getSymbol("abs") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: abs") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_12216) ;
	ret_from_app_12216:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (abs n)") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: application: (abs m)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: m") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: m") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: abs") ;
	machine.reg[RES] = getSymbol("abs") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: abs") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_12217) ;
	ret_from_app_12217:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (abs m)") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: lambda: (lambda (abs-m abs-n sgn-m) (binary-mul sgn-m (binary-sub abs-m (binary-mul (binary-div abs-m abs-n) abs-n))))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_12221 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_12222;
	Closure_Code_12221:
	FUNCTION_ENTER("(lambda (abs-m abs-n sgn-m) (binary-mul sgn-m (binary-sub abs-m (binary-mul (binary-div abs-m abs-n) abs-n))))");
	RUNTIME_ASSERT(STACK_ARGC() == 3) ;
	DEBUG_TRACE("start: app tp: (binary-mul sgn-m (binary-sub abs-m (binary-mul (binary-div abs-m abs-n) abs-n)))") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: application: (binary-sub abs-m (binary-mul (binary-div abs-m abs-n) abs-n))") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: application: (binary-mul (binary-div abs-m abs-n) abs-n)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: abs-n") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: abs-n") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: application: (binary-div abs-m abs-n)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: abs-n") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: abs-n") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: abs-m") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: abs-m") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: binary-div") ;
	machine.reg[RES] = getSymbol("binary-div") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: binary-div") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_12218) ;
	ret_from_app_12218:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (binary-div abs-m abs-n)") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: binary-mul") ;
	machine.reg[RES] = getSymbol("binary-mul") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: binary-mul") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_12219) ;
	ret_from_app_12219:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (binary-mul (binary-div abs-m abs-n) abs-n)") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: abs-m") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: abs-m") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: binary-sub") ;
	machine.reg[RES] = getSymbol("binary-sub") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: binary-sub") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_12220) ;
	ret_from_app_12220:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (binary-sub abs-m (binary-mul (binary-div abs-m abs-n) abs-n))") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: sgn-m") ;
	machine.reg[RES] = STACK_ARGV(2) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: sgn-m") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: var free: binary-mul") ;
	machine.reg[RES] = getSymbol("binary-mul") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: binary-mul") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 2 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	machine.stack[machine.fp+2] = machine.stack[machine.sp+1] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +3 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 2, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: (binary-mul sgn-m (binary-sub abs-m (binary-mul (binary-div abs-m abs-n) abs-n)))") ;
	FUNCTION_EXIT ("(lambda (abs-m abs-n sgn-m) (binary-mul sgn-m (binary-sub abs-m (binary-mul (binary-div abs-m abs-n) abs-n))))");
	Continue_12222:
	DEBUG_TRACE("end: lambda: (lambda (abs-m abs-n sgn-m) (binary-mul sgn-m (binary-sub abs-m (binary-mul (binary-div abs-m abs-n) abs-n))))") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 3 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	machine.stack[machine.fp+2] = machine.stack[machine.sp+1] ;
	machine.stack[machine.fp+3] = machine.stack[machine.sp+2] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +4 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 3, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: ((lambda (abs-m abs-n sgn-m) (binary-mul sgn-m (binary-sub abs-m (binary-mul (binary-div abs-m abs-n) abs-n)))) (abs m) (abs n) (sgn m))") ;
	FUNCTION_EXIT ("(lambda (m n) ((lambda (abs-m abs-n sgn-m) (binary-mul sgn-m (binary-sub abs-m (binary-mul (binary-div abs-m abs-n) abs-n)))) (abs m) (abs n) (sgn m)))");
	Continue_12224:
	DEBUG_TRACE("end: lambda: (lambda (m n) ((lambda (abs-m abs-n sgn-m) (binary-mul sgn-m (binary-sub abs-m (binary-mul (binary-div abs-m abs-n) abs-n)))) (abs m) (abs n) (sgn m)))") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("remainder") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define remainder (lambda (m n) ((lambda (abs-m abs-n sgn-m) (binary-mul sgn-m (binary-sub abs-m (binary-mul (binary-div abs-m abs-n) abs-n)))) (abs m) (abs n) (sgn m))))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_12214:
	
	pushDummyFrame(&&exit_12225) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define gcd ((lambda (binary-gcd) (begin (set! binary-gcd (box binary-gcd)) (vector-set! binary-gcd 0 (lambda (a b) (if (zero\? b) a ((lambda (r) (if (zero\? r) b ((vector-ref binary-gcd 0) b r))) (remainder a b))))) ((lambda () (lambda (a . s) (foldr (vector-ref binary-gcd 0) a s)))))) #f)) **********") ;
	DEBUG_TRACE("start: def: (define gcd ((lambda (binary-gcd) (begin (set! binary-gcd (box binary-gcd)) (vector-set! binary-gcd 0 (lambda (a b) (if (zero\? b) a ((lambda (r) (if (zero\? r) b ((vector-ref binary-gcd 0) b r))) (remainder a b))))) ((lambda () (lambda (a . s) (foldr (vector-ref binary-gcd 0) a s)))))) #f))") ;
	DEBUG_TRACE("start: application: ((lambda (binary-gcd) (begin (set! binary-gcd (box binary-gcd)) (vector-set! binary-gcd 0 (lambda (a b) (if (zero\? b) a ((lambda (r) (if (zero\? r) b ((vector-ref binary-gcd 0) b r))) (remainder a b))))) ((lambda () (lambda (a . s) (foldr (vector-ref binary-gcd 0) a s)))))) #f)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	machine.reg[RES] = makeSchemeBool(FALSE);
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: lambda: (lambda (binary-gcd) (begin (set! binary-gcd (box binary-gcd)) (vector-set! binary-gcd 0 (lambda (a b) (if (zero\? b) a ((lambda (r) (if (zero\? r) b ((vector-ref binary-gcd 0) b r))) (remainder a b))))) ((lambda () (lambda (a . s) (foldr (vector-ref binary-gcd 0) a s))))))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_12249 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_12250;
	Closure_Code_12249:
	FUNCTION_ENTER("(lambda (binary-gcd) (begin (set! binary-gcd (box binary-gcd)) (vector-set! binary-gcd 0 (lambda (a b) (if (zero\? b) a ((lambda (r) (if (zero\? r) b ((vector-ref binary-gcd 0) b r))) (remainder a b))))) ((lambda () (lambda (a . s) (foldr (vector-ref binary-gcd 0) a s))))))");
	RUNTIME_ASSERT(STACK_ARGC() == 1) ;
	DEBUG_TRACE("start: sequence: (begin (set! binary-gcd (box binary-gcd)) (vector-set! binary-gcd 0 (lambda (a b) (if (zero\? b) a ((lambda (r) (if (zero\? r) b ((vector-ref binary-gcd 0) b r))) (remainder a b))))) ((lambda () (lambda (a . s) (foldr (vector-ref binary-gcd 0) a s)))))") ;
	/* start new begin statement */
	DEBUG_TRACE("start: set: (set! binary-gcd (box binary-gcd))") ;
	DEBUG_TRACE("start: application: (box binary-gcd)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: binary-gcd") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: binary-gcd") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: box") ;
	machine.reg[RES] = getSymbol("box") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: box") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_12227) ;
	ret_from_app_12227:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (box binary-gcd)") ;
	*(STACK_ARGS()-0) = machine.reg[RES] ;
	machine.reg[RES] = makeSchemeVoid() ;
	DEBUG_TRACE("end: set: (set! binary-gcd (box binary-gcd))") ;
	/* start new begin statement */
	DEBUG_TRACE("start: application: (vector-set! binary-gcd 0 (lambda (a b) (if (zero\? b) a ((lambda (r) (if (zero\? r) b ((vector-ref binary-gcd 0) b r))) (remainder a b)))))") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: lambda: (lambda (a b) (if (zero\? b) a ((lambda (r) (if (zero\? r) b ((vector-ref binary-gcd 0) b r))) (remainder a b))))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_12238 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_12239;
	Closure_Code_12238:
	FUNCTION_ENTER("(lambda (a b) (if (zero\? b) a ((lambda (r) (if (zero\? r) b ((vector-ref binary-gcd 0) b r))) (remainder a b))))");
	RUNTIME_ASSERT(STACK_ARGC() == 2) ;
	DEBUG_TRACE("start: if: (if (zero\? b) a ((lambda (r) (if (zero\? r) b ((vector-ref binary-gcd 0) b r))) (remainder a b)))") ;

	DEBUG_TRACE("start: application: (zero\? b)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: b") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: b") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: zero\?") ;
	machine.reg[RES] = getSymbol("zero?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: zero\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_12228) ;
	ret_from_app_12228:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (zero\? b)") ;
	if (sobIsFalse(machine.reg[RES])) goto If_Else_12236;
	DEBUG_NOTICE("branch taken");
	DEBUG_TRACE("start: var param: a") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: a") ;
	goto If_Done_12237;
	If_Else_12236:
	DEBUG_NOTICE("branch not taken");
	DEBUG_TRACE("start: app tp: ((lambda (r) (if (zero\? r) b ((vector-ref binary-gcd 0) b r))) (remainder a b))") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: application: (remainder a b)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: b") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: b") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: a") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: a") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: remainder") ;
	machine.reg[RES] = getSymbol("remainder") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: remainder") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_12229) ;
	ret_from_app_12229:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (remainder a b)") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: lambda: (lambda (r) (if (zero\? r) b ((vector-ref binary-gcd 0) b r)))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_12234 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_12235;
	Closure_Code_12234:
	FUNCTION_ENTER("(lambda (r) (if (zero\? r) b ((vector-ref binary-gcd 0) b r)))");
	RUNTIME_ASSERT(STACK_ARGC() == 1) ;
	DEBUG_TRACE("start: if: (if (zero\? r) b ((vector-ref binary-gcd 0) b r))") ;

	DEBUG_TRACE("start: application: (zero\? r)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: r") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: r") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: zero\?") ;
	machine.reg[RES] = getSymbol("zero?") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: zero\?") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_12230) ;
	ret_from_app_12230:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (zero\? r)") ;
	if (sobIsFalse(machine.reg[RES])) goto If_Else_12232;
	DEBUG_NOTICE("branch taken");
	DEBUG_TRACE("start: var bound: b") ;
	machine.reg[RES] = getBoundVar (STACK_ENV(), 0, 1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var bound: b") ;
	goto If_Done_12233;
	If_Else_12232:
	DEBUG_NOTICE("branch not taken");
	DEBUG_TRACE("start: app tp: ((vector-ref binary-gcd 0) b r)") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: var param: r") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: r") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var bound: b") ;
	machine.reg[RES] = getBoundVar (STACK_ENV(), 0, 1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var bound: b") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: application: (vector-ref binary-gcd 0)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	machine.reg[RES] = makeSchemeInt(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var bound: binary-gcd") ;
	machine.reg[RES] = getBoundVar (STACK_ENV(), 1, 0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var bound: binary-gcd") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: vector-ref") ;
	machine.reg[RES] = getSymbol("vector-ref") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: vector-ref") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_12231) ;
	ret_from_app_12231:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (vector-ref binary-gcd 0)") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 2 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	machine.stack[machine.fp+2] = machine.stack[machine.sp+1] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +3 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 2, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: ((vector-ref binary-gcd 0) b r)") ;
	If_Done_12233:

	DEBUG_TRACE("end: if: (if (zero\? r) b ((vector-ref binary-gcd 0) b r))") ;
	FUNCTION_EXIT ("(lambda (r) (if (zero\? r) b ((vector-ref binary-gcd 0) b r)))");
	Continue_12235:
	DEBUG_TRACE("end: lambda: (lambda (r) (if (zero\? r) b ((vector-ref binary-gcd 0) b r)))") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 1 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +2 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 1, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: ((lambda (r) (if (zero\? r) b ((vector-ref binary-gcd 0) b r))) (remainder a b))") ;
	If_Done_12237:

	DEBUG_TRACE("end: if: (if (zero\? b) a ((lambda (r) (if (zero\? r) b ((vector-ref binary-gcd 0) b r))) (remainder a b)))") ;
	FUNCTION_EXIT ("(lambda (a b) (if (zero\? b) a ((lambda (r) (if (zero\? r) b ((vector-ref binary-gcd 0) b r))) (remainder a b))))");
	Continue_12239:
	DEBUG_TRACE("end: lambda: (lambda (a b) (if (zero\? b) a ((lambda (r) (if (zero\? r) b ((vector-ref binary-gcd 0) b r))) (remainder a b))))") ;
	push((void*)machine.reg[RES]) ;
	machine.reg[RES] = makeSchemeInt(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: binary-gcd") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: binary-gcd") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: vector-set!") ;
	machine.reg[RES] = getSymbol("vector-set!") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: vector-set!") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 3, machine.reg[1], &&ret_from_app_12240) ;
	ret_from_app_12240:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (vector-set! binary-gcd 0 (lambda (a b) (if (zero\? b) a ((lambda (r) (if (zero\? r) b ((vector-ref binary-gcd 0) b r))) (remainder a b)))))") ;
	/* start new begin statement */
	DEBUG_TRACE("start: app tp: ((lambda () (lambda (a . s) (foldr (vector-ref binary-gcd 0) a s))))") ;
	/* Start of Pushing args */
	/* End of Pushing args */
	DEBUG_TRACE("start: lambda: (lambda () (lambda (a . s) (foldr (vector-ref binary-gcd 0) a s)))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	machine.reg[1] = makeLocalEnv (STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[2] = extendEnv ((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure (machine.reg[2], &&Closure_Code_12247 ) ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	goto Continue_12248;
	Closure_Code_12247:
	FUNCTION_ENTER("(lambda () (lambda (a . s) (foldr (vector-ref binary-gcd 0) a s)))");
	RUNTIME_ASSERT(STACK_ARGC() == 0) ;
	DEBUG_TRACE("start: lambda opt: (lambda (a . s) (foldr (vector-ref binary-gcd 0) a s))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[0]) ;
	machine.reg[1] = makeLocalEnv(STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[0] = extendEnv((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure(machine.reg[0], &&Closure_Code_12241) ;
	goto Continue_12242 ;
	Closure_Code_12241:
	FUNCTION_ENTER("(lambda (a . s) (foldr (vector-ref binary-gcd 0) a s))") ;
	RUNTIME_ASSERT(STACK_ARGC() >= 1) ;
	push((void*)machine.reg[0]) ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	push((void*)machine.reg[3]) ;
	/* backups since shifting the frame changes argc */
	machine.reg[1] = (void*)STACK_ARGC() ;
	machine.reg[1] = (void*)((Amount)machine.reg[1] - 1) ; /* amount of optional args */
	machine.reg[3] = (void*)(STACK_FRAME_SIZE()+4) ;
	machine.reg[0] = stackToSchemeList(STACK_ARGS()-1, (Amount)machine.reg[1]) ;
	/* shift_frame_up */
	machine.reg[2] = (void*)(machine.sp) ; /* loop counter */
	shift_frame_up_loop_start_12244:
	if (!((Amount)machine.reg[2] >= machine.sp-(Amount)machine.reg[3]+1)) goto shift_frame_up_loop_end_12245 ;
	machine.stack[(Amount)machine.reg[2]] = machine.stack[(Amount)machine.reg[2]-1] ;
	machine.reg[2] = (void*)((Amount)machine.reg[2] - 1) ; /* step */
	goto shift_frame_up_loop_start_12244 ;
	shift_frame_up_loop_end_12245:
	machine.fp += 1 ;
	goto after_frame_shift_12243 ;
	after_frame_shift_12243:
	machine.sp = machine.fp+4 ;
	machine.stack[machine.fp-4] = machine.stack[machine.fp-4]+1 ; /* fix ARGC, basically, STACK_ARGC() -= ... */
	*(STACK_ARGS()-1) = machine.reg[0] ; /* fix last argument */
	machine.reg[3] = pop() ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("start: app tp: (foldr (vector-ref binary-gcd 0) a s)") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: var param: s") ;
	machine.reg[RES] = STACK_ARGV(1) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var param: a") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: a") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: application: (vector-ref binary-gcd 0)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	machine.reg[RES] = makeSchemeInt(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var bound: binary-gcd") ;
	machine.reg[RES] = getBoundVar (STACK_ENV(), 1, 0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var bound: binary-gcd") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: vector-ref") ;
	machine.reg[RES] = getSymbol("vector-ref") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: vector-ref") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_12246) ;
	ret_from_app_12246:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (vector-ref binary-gcd 0)") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: var free: foldr") ;
	machine.reg[RES] = getSymbol("foldr") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: foldr") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 3 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	machine.stack[machine.fp+2] = machine.stack[machine.sp+1] ;
	machine.stack[machine.fp+3] = machine.stack[machine.sp+2] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +4 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 3, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: (foldr (vector-ref binary-gcd 0) a s)") ;
	FUNCTION_EXIT("(lambda (a . s) (foldr (vector-ref binary-gcd 0) a s))") ;
	Continue_12242:
	machine.reg[0] = pop() ;
	machine.reg[1] = pop() ;
	DEBUG_TRACE("end: lambda opt: (lambda (a . s) (foldr (vector-ref binary-gcd 0) a s))") ;
	FUNCTION_EXIT ("(lambda () (lambda (a . s) (foldr (vector-ref binary-gcd 0) a s)))");
	Continue_12248:
	DEBUG_TRACE("end: lambda: (lambda () (lambda (a . s) (foldr (vector-ref binary-gcd 0) a s)))") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 0 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	/* End of overwriting old frame */
	machine.sp = machine.fp +1 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 0, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: ((lambda () (lambda (a . s) (foldr (vector-ref binary-gcd 0) a s))))") ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: sequence: (begin (set! binary-gcd (box binary-gcd)) (vector-set! binary-gcd 0 (lambda (a b) (if (zero\? b) a ((lambda (r) (if (zero\? r) b ((vector-ref binary-gcd 0) b r))) (remainder a b))))) ((lambda () (lambda (a . s) (foldr (vector-ref binary-gcd 0) a s)))))") ;
	FUNCTION_EXIT ("(lambda (binary-gcd) (begin (set! binary-gcd (box binary-gcd)) (vector-set! binary-gcd 0 (lambda (a b) (if (zero\? b) a ((lambda (r) (if (zero\? r) b ((vector-ref binary-gcd 0) b r))) (remainder a b))))) ((lambda () (lambda (a . s) (foldr (vector-ref binary-gcd 0) a s))))))");
	Continue_12250:
	DEBUG_TRACE("end: lambda: (lambda (binary-gcd) (begin (set! binary-gcd (box binary-gcd)) (vector-set! binary-gcd 0 (lambda (a b) (if (zero\? b) a ((lambda (r) (if (zero\? r) b ((vector-ref binary-gcd 0) b r))) (remainder a b))))) ((lambda () (lambda (a . s) (foldr (vector-ref binary-gcd 0) a s))))))") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 1, machine.reg[1], &&ret_from_app_12226) ;
	ret_from_app_12226:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: ((lambda (binary-gcd) (begin (set! binary-gcd (box binary-gcd)) (vector-set! binary-gcd 0 (lambda (a b) (if (zero\? b) a ((lambda (r) (if (zero\? r) b ((vector-ref binary-gcd 0) b r))) (remainder a b))))) ((lambda () (lambda (a . s) (foldr (vector-ref binary-gcd 0) a s)))))) #f)") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("gcd") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define gcd ((lambda (binary-gcd) (begin (set! binary-gcd (box binary-gcd)) (vector-set! binary-gcd 0 (lambda (a b) (if (zero\? b) a ((lambda (r) (if (zero\? r) b ((vector-ref binary-gcd 0) b r))) (remainder a b))))) ((lambda () (lambda (a . s) (foldr (vector-ref binary-gcd 0) a s)))))) #f))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_12225:
	
	pushDummyFrame(&&exit_12251) ;
	FUNCTION_ENTER("\t********** NEW SCHEME COMMAND: (define lcm (lambda s (/ (apply * s) (apply gcd s)))) **********") ;
	DEBUG_TRACE("start: def: (define lcm (lambda s (/ (apply * s) (apply gcd s))))") ;
	DEBUG_TRACE("start: lambda opt: (lambda s (/ (apply * s) (apply gcd s)))") ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[0]) ;
	machine.reg[1] = makeLocalEnv(STACK_ARGS(), STACK_ARGC()) ;
	machine.reg[0] = extendEnv((Environment)STACK_ENV(), machine.reg[1]) ;
	machine.reg[RES] = makeSchemeClosure(machine.reg[0], &&Closure_Code_12252) ;
	goto Continue_12253 ;
	Closure_Code_12252:
	FUNCTION_ENTER("(lambda s (/ (apply * s) (apply gcd s)))") ;
	RUNTIME_ASSERT(STACK_ARGC() >= 0) ;
	push((void*)machine.reg[0]) ;
	push((void*)machine.reg[1]) ;
	push((void*)machine.reg[2]) ;
	push((void*)machine.reg[3]) ;
	/* backups since shifting the frame changes argc */
	machine.reg[1] = (void*)STACK_ARGC() ;
	machine.reg[1] = (void*)((Amount)machine.reg[1] - 0) ; /* amount of optional args */
	machine.reg[3] = (void*)(STACK_FRAME_SIZE()+4) ;
	machine.reg[0] = stackToSchemeList(STACK_ARGS()-0, (Amount)machine.reg[1]) ;
	/* shift_frame_up */
	machine.reg[2] = (void*)(machine.sp) ; /* loop counter */
	shift_frame_up_loop_start_12255:
	if (!((Amount)machine.reg[2] >= machine.sp-(Amount)machine.reg[3]+1)) goto shift_frame_up_loop_end_12256 ;
	machine.stack[(Amount)machine.reg[2]] = machine.stack[(Amount)machine.reg[2]-1] ;
	machine.reg[2] = (void*)((Amount)machine.reg[2] - 1) ; /* step */
	goto shift_frame_up_loop_start_12255 ;
	shift_frame_up_loop_end_12256:
	machine.fp += 1 ;
	goto after_frame_shift_12254 ;
	after_frame_shift_12254:
	machine.sp = machine.fp+4 ;
	machine.stack[machine.fp-4] = machine.stack[machine.fp-4]+1 ; /* fix ARGC, basically, STACK_ARGC() -= ... */
	*(STACK_ARGS()-0) = machine.reg[0] ; /* fix last argument */
	machine.reg[3] = pop() ;
	machine.reg[2] = pop() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("start: app tp: (/ (apply * s) (apply gcd s))") ;
	/* Start of Pushing args */
	DEBUG_TRACE("start: application: (apply gcd s)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: s") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var free: gcd") ;
	machine.reg[RES] = getSymbol("gcd") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: gcd") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: apply") ;
	machine.reg[RES] = getSymbol("apply") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: apply") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_12257) ;
	ret_from_app_12257:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (apply gcd s)") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: application: (apply * s)") ;
	push((void*)machine.reg[1]) ; /* will be environment */
	push((void*)machine.reg[0]) ; /* will be code */
	/* calculating application's arguments */
	DEBUG_TRACE("start: var param: s") ;
	machine.reg[RES] = STACK_ARGV(0) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var param: s") ;
	push((void*)machine.reg[RES]) ;
	DEBUG_TRACE("start: var free: *") ;
	machine.reg[RES] = getSymbol("*") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: *") ;
	push((void*)machine.reg[RES]) ;
	/* calculating the closure */
	DEBUG_TRACE("start: var free: apply") ;
	machine.reg[RES] = getSymbol("apply") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: apply") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	CALL(*machine.reg[0], 2, machine.reg[1], &&ret_from_app_12258) ;
	ret_from_app_12258:
	machine.reg[0] = pop() ; /* was code */
	machine.reg[1] = pop() ; /* was environment */
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: application: (apply * s)") ;
	push((void*)machine.reg[RES]) ;
	/* End of Pushing args */
	DEBUG_TRACE("start: var free: /") ;
	machine.reg[RES] = getSymbol("/") ;
	RUNTIME_ASSERT(SYMBOL_ENTRY(machine.reg[RES])->isDefined) ;
	machine.reg[RES] = SYMBOL_ENTRY_OBJ(machine.reg[RES]) ;
	DEBUG_CASUAL("result = %p -- %s", machine.reg[RES], sobToString(Sob(machine.reg[RES]))) ;
	DEBUG_TRACE("end: var free: /") ;
	RUNTIME_ASSERT(sobIsClosure(machine.reg[RES])) ;
	machine.reg[1] = SOB_CLOSURE_ENV(machine.reg[RES]) ;
	machine.reg[0] = SOB_CLOSURE_CODE(machine.reg[RES]) ;
	machine.reg[3] = (void*)STACK_OLD_FP() ;
	machine.reg[2] = STACK_RET_ADDRESS() ;
	machine.sp -= 2 ; /* Puts Sp the begining of items to copy (function arguments) */
	machine.fp -= 5+STACK_ARGC() ; /* Bottom of current frame which is also where the base for our overwritten one (5 == (fp+ret+env+argc)+ argv) */
	/* Start of overwriting old frame */
	machine.stack[machine.fp+1] = machine.stack[machine.sp+0] ;
	machine.stack[machine.fp+2] = machine.stack[machine.sp+1] ;
	/* End of overwriting old frame */
	machine.sp = machine.fp +3 ; /* sets sp to top of overwritten frame */
	machine.fp = (int)machine.reg[3] ;
	CALL(*machine.reg[0], 2, machine.reg[1], machine.reg[2]) ;
	DEBUG_TRACE("end: app tp: (/ (apply * s) (apply gcd s))") ;
	FUNCTION_EXIT("(lambda s (/ (apply * s) (apply gcd s)))") ;
	Continue_12253:
	machine.reg[0] = pop() ;
	machine.reg[1] = pop() ;
	DEBUG_TRACE("end: lambda opt: (lambda s (/ (apply * s) (apply gcd s)))") ;
	push((void*)machine.reg[0]) ;
	machine.reg[0] = machine.reg[RES] ;
	push((void*)machine.reg[1]) ;
	machine.reg[1] = getSymbol("lcm") ;
	SYMBOL_ENTRY_OBJ(machine.reg[1]) = machine.reg[0] ;
	SYMBOL_ENTRY(machine.reg[1])->isDefined = TRUE ;
	machine.reg[RES] = makeSchemeVoid() ;
	machine.reg[1] = pop() ;
	machine.reg[0] = pop() ;
	DEBUG_TRACE("end: def: (define lcm (lambda s (/ (apply * s) (apply gcd s))))") ;
	FUNCTION_EXIT("\t********** END OF SCHEME COMMAND **********") ;
exit_12251:

